Swift2.0语言教程之Swift2.0语言中的标准函数

Swift2.0语言教程之Swift2.0语言中的标准函数

Swift2.0中的标准函数

函数除了可以根据参数列表的有无分为无参函数和有参函数,还可以从定义角度分为用户自定义函数和标准函数两种。以上的示例都是用户自定函数。Swift提供了74个标准函数,这些函数都可以直接去使用,不需要进行定义。本节将针对常用的标准函数进行详细的讲解。

Swift2.0中的绝对值函数abs()

abs()函数的功能是求数值的绝对值。其语法形式如下:

  • abs(数值)

函数的返回值是一个零或者正数。

【示例7-17】以下将使用abs()函数获取-10、10、0、-1.233、1.233的绝对值。代码如下:

  • import Foundation
  • //求整数的绝对值
  • let value1=abs(-10)
  • let value2=abs(10)
  • let value3=abs(0)
  • //求浮点数的绝对值
  • let value4=abs(-1.233)
  • let value5=abs(1.233)
  • print("value1=\(value1)")
  • print("value2=\(value2)")
  • print("value3=\(value3)")
  • print("value4=\(value4)")
  • print("value5=\(value5)")

在此代码中,正数的绝对值是它本身;负数的绝对值为正数;0的绝对值还为0。运行结果如下:

  • value1=10
  • value2=10
  • value3=0
  • value4=1.233
  • value5=1.233

注意:abs()中的参数必须是数值,不可以是数值以外的东西,如字符、字符串等。如以下的代码,将获取字符串"aaa"的绝对值。代码如下:

  • import Foundation
  • let value1=abs("aaa")
  • print("value1=\(value1)")

由于abs()的参数为字符串导致程序出现了以下错误:

  • Cannot find an overload for ‘abs‘ that accepts an argument list of type ‘(String)‘

Swift2.0中最大值函数max()/最小值min()

在编程中,经常需要计算几个参数的最大值或者最小值,此时可以使用标准函数中的max()和min()函数实现。以下是对这两个函数的详细讲解。

1.获取最大值

max()函数可以获取几个参数的最大值。其语法形式如下:

  • max(参数1,参数2,参数3,…)

其中,参数可以是数值,也可以是字符串或字符。

【示例7-18】以下将使用max()函数,依次获取1.9和10的最大值,13.8、20、88.88的最大值以及字符串"Hello"、"Swift"、"Zone"的最大值。代码如下:

  • import Foundation
  • let maxValue1=max(1.9,10)
  • let maxValue2=max(13.8,20,88.88)
  • let maxValue3=max("Hello","Swift","Zone")
  • print("maxValue1=\(maxValue1)")
  • print("maxValue2=\(maxValue2)")
  • print("maxValue3=\(maxValue3)")

在对字符串进行比较时,是对字符串中的字符进行比较。首先会判断3个字符的首字符哪个大。如果找到最大的字符,就以此字符开头的字符串为最大值;如果判断的3个首字符相同,那么在进行第二个字符的比较,以此类推。运行结果如下:

  • maxValue1=10.0
  • maxValue2=88.88
  • maxValue3=Zone

2.获取最小值

min()函数可以获取几个参数的最小值。其语法形式如下:

  • min(参数1,参数2,参数3,…)

其中,参数同样可以是数值、字符串或字符。

【示例7-19】以下将使用min()函数,获取1.9和10的最小值,获取13.8、20、88.88的最小值,字符串"Swift"、"Hello"、"iOS"的最小值。代码如下:

  • import Foundation
  • let minValue1=min(1.9,10)
  • let minValue2=min(13.8,20,88.88)
  • let minValue3=min("Swift","Hello","iOS")
  • print("minValue1=\(minValue1)")
  • print("minValue2=\(minValue2)")
  • print("minValue3=\(minValue3)")

运行结果如下:

  • minValue1=1.9
  • minValue2=13.8
  • minValue3=Hello

注意:在使用max()、min()时如果是数值,比较的参数都是数值。如果是字符或者字符串,比较的参数也是字符或者字符串。不可以在一个函数中同时比较数值和字符串、字符。以下的代码将比较1.9、10和字符串"Hello"的最小值。代码如下:

  • import Foundation
  • let minValue=min(1.9,10,"Hello")
  • println("minValue=\(minValue)")

在此代码中,由于min()函数对数值和字符串进行比较,导致程序出现了以下的错误:

  • Cannot find an overload for ‘min‘ that accepts an argument list of type ‘(Double, Int, String)‘

Swift2.0中序列的最大值函数maxElement()/最小值函数minElement()

在一个序列中,往往需要获取元素的最大值或者最小值。此时可以使用maxElement()和minElement()函数。以下是对这两个函数的详细讲解。

1.序列的最大值

maxElement()函数获取一个序列中最大值的元素。其语法形式如下:

  • 序列.maxElement()

其中,序列可以是数值,也可以是一个范围。

【示例7-20】下面使用maxElement()函数获取序列sequence1、sequence2和范围1...100中最大值的元素。代码如下:

  • import Foundation
  • let sequence1=[9,8,2,3]
  • let sequence2=["Ad","Ab","Ac"]
  • let maxValue1=sequence1.maxElement()!
  • print("maxValue1=\(maxValue1)")
  • let maxValue2=(1...100).maxElement()!
  • print("maxValue2=\(maxValue2)")
  • let maxValue3=sequence2.maxElement()!
  • print("maxValue3=\(maxValue3)")

其中,字符串构成的序列sequence2的判断方式与函数max()相同,都是依次比较字符串的字母大小。运行结果如下:

  • maxValue1=9
  • maxValue2=100
  • maxValue3=Ad

2.序列的最小值

minElement()函数可以获取一个序列中最小值的元素。其语法形式如下:

  • 序列.minElement()

其中,序列可以是数值,也可以是一个范围。

【示例7-21】以下将使用minElement()函数获取序列sequence1、sequence2和范围1...100中最小值的元素。代码如下:

  • import Foundation
  • let sequence1=[9,8,2,3]
  • let sequence2=["Ad","Ab","Ac"]
  • let minValue1=sequence1.minElement()!
  • print("minValue1=\(minValue1)")
  • let minValue2=(1...100).minElement()!
  • print("minValue2=\(minValue2)")
  • let minValue3=sequence2.minElement()!
  • print("minValue3=\(minValue3)")

运行结果如下:

  • minValue1=2
  • minValue2=1
  • minValue3=Ab

Swift2.0中判断序列是否包含指定元素函数contains()

contains()函数可以判断一个序列中是否包含指定的元素。其语法形式如下:

  • 序列.contains(元素)

其中,函数的返回值类型为布尔类型。当返回true时,表示表达序列中包含指定的元素;当返回false时,表示不包含。

【示例7-22】以下代码使用contains()函数函数判断序列languages中是否包含元素"Swift"和"Java"。代码如下:

  • import Foundation
  • var languages = ["Swift", "Objective-C","C"]
  • //判断在languages数组中是否包含"Swift"字符串
  • if languages.contains("Swift") == true  {
  • print("languages序列中包含元素“Swift”")
  • }else{
  • print("languages序列中不包含元素“Swift”")
  • }
  • //判断在languages数组中是否包含"Java"字符串
  • if languages.contains("Java") == true  {
  • print("languages序列中包含元素“Java”")
  • }else{
  • print("languages序列中不包含元素“Java”")
  • }

在此代码languages中"Swift"、"Objective-C"、"C"这三个元素,但是没有"Java"元素。运行结果如下:

  • languages序列中包含元素“Swift”
  • languages序列中不包含元素“Java”

在比较的时候,会区分字母的大小写。所以,不同大小写的字符串是不同的。

Swift2.0中的序列排序函数sortInPlace()

在编程中,经常需要对序列中元素的进行排序。此时可以使用Swift中的sortInPlace()函数来实现。其语法形式如下:

  • 序列.sortInPlace()

其中,序列是指数组。

【示例7-23】以下将使用sort()函数对languages和value数组进行排序。代码如下:

  • import Foundation
  • var languages = ["Swift", "Objective-C","C"]
  • print("排序前:languages=\(languages)")
  • languages.sortInPlace()
  • print("排序后:languages=\(languages)")

运行结果如下:

  • 排序前:languages=[Swift, Objective-C, C]
  • 排序后:languages=[C, Objective-C, Swift]

Swift2.0中的序列倒序函数reverse()

reverse()函数可以将序列中元素的倒序排列。其语法形式如下:

  • 序列.reverse()

其中,序列是指数组。

【示例7-24】以下将使用reverse 函数对序列languages和value进行倒序排列。代码如下:

  • import Foundation
  • var languages = ["Swift", "Objective-C","C"]
  • print("languages=\(languages)")
  • print("倒序输出:")
  • for i in Array(languages.reverse()){
  • print(i)
  • }
  • var value = [1,8,4,10]
  • print("value=\(value)")
  • print("倒序输出:")
  • for i in Array(value.reverse()){
  •     print(i)
  • }

运行结果如下:

  • languages=[Swift, Objective-C, C]

倒序输出:

  • C
  • Objective-C
  • Swift
  • value=[1, 8, 4, 10]

倒序输出:

  • 10
  • 4
  • 8
  • 1

本文选自:Swift2.0语言快速入门v3.0 大学霸内部资料,转载请注明出处,尊重技术尊重IT人!

时间: 2024-08-03 18:16:43

Swift2.0语言教程之Swift2.0语言中的标准函数的相关文章

老二牛车Axure夜话:Axure手机原型视频教程之Path2.0菜单

老二牛车Axure夜话:Axure手机原型视频教程之Path2.0菜单 案例描述:Path2.0菜单 知识点: Axure中继器 综合操作 ....... 效果图: 本站在线效果预览:http://www.iniuche.com/phonelesson/path201/start.html#p=home(firefox原型文件) AxShare在线效果预览: 原型下载地址:Path2.0菜单.rp 在线视频: 实现步骤: 更新中…..

0.嵌入式教程之ubuntu系统安装与系统优化

这个文章已录制视频    http://pan.baidu.com/s/1nt3cdFN   坚持每天更新中 系统安装:1.建议安装ubuntu(linux)系统,这个系统中文社区做的比较好,很多问题已经被别人解决了,很方便,还有他的apt-get软件管理方式很方便.后面我会讲到.建议使用原版ubuntu系统,不要使用ubuntu麒麟这个阉割版. 系统下载地址:http://www.ubuntu.com/download/desktop建议使用14.04长期稳定版.不建议使用虚拟机. 系统如何安

vc++教程之CreateRemoteThread

作者是:无名   QQ:16349023  Email:[email protected] 要实现线程的远程注入必须使用Windows提供的CreateRemoteThread函数来创建一个远程线程该函数的原型如下: HANDLE CreateRemoteThread( HANDLE hProcess, LPSECURITY_ATTRIBUTES lpThreadAttributes, SIZE_T dwStackSize, LPTHREAD_START_ROUTINE lpStartAddre

iOS高仿(swift2.2):花田小憩3.0.1

前言 断断续续的已经学习Swift一年多了, 从1.2到现在的2.2, 一直在语法之间徘徊, 学一段时间, 工作一忙, 再捡起来隔段时间又忘了.思来想去, 趁着这两个月加班不是特别多, 就决定用swift仿写一个完整项目. 花田小憩:是一个植物美学生活平台, 以自然生活为主导, 提倡植物学生活方法, 倡导美学标准的生活态度的一个APP. 个人文字功底有限, 就我而言, 这款APP做的挺唯美的- github地址 github地址 如果对您有些许帮助, 请star ? 声明 此花田小憩项目里面的都

Linux内核源码分析--内核启动之(3)Image内核启动(C语言部分)(Linux-3.0 ARMv7) 【转】

原文地址:Linux内核源码分析--内核启动之(3)Image内核启动(C语言部分)(Linux-3.0 ARMv7) 作者:tekkamanninja 转自:http://blog.chinaunix.net/uid-25909619-id-4938390.html 在构架相关的汇编代码运行完之后,程序跳入了构架无关的内核C语言代码:init/main.c中的start_kernel函数,在这个函数中Linux内核开始真正进入初始化阶段, 下面我就顺这代码逐个函数的解释,但是这里并不会过于深入

ADFS 2.0 配置简介 PartⅢ – 声明规则语言

上一篇我们最终把 ADFS 与应用之间的信任关系建立起来了,但是应用接收到的声明信息只有默认的两个,这次我们就来学学怎么配置声明. 一.声明存储配置 ADFS 目前默认支持三种方式的声明值存储,另外还有自定义存储,不过我没去研究 二.编辑预定义声明 三.编写自己的定制声明 如果你需要编写自定义的声明规则,那么你需要掌握一种描述声明的语法,很简单的,首先让我们看看上边配置的电子邮件声明生成的语句 c:[Type == "http://schemas.microsoft.com/ws/2008/06

Axure 教程之Axure RP7.0从入门到精通

Axure RP是美国Axure Software Solution公司旗舰产品,是一个专业的快速原型设计工具,让负责定义需求和规格.设计功能和界面的专家能够快速创建应用软件或Web网站的线框图.流程图.原型和规格说明文档.作为专业的原型设计工具,它能快速.高效的创建原型,同时支持多人协作设计和版本控制管理.第1节 Axure RP7.0下载.安装.汉化与注册第2节 Axure RP7.0的功能介绍(上)第3节 Axure RP7.0的功能介绍(下)第4节 第一个原型 简单的登录页面第5节 第一

C语言调用WIN32 API教程之1创建窗口

本学习笔记基于VC++6.0开发环境,通过c语言编程语言,调用win32 API进行windows系统应用程序开发. 1,打开VC++6.0,点击 文件->新建->工程->Win32 Application 工程名填写example1,点击确定,选择 一个空工程,点击完成. 2,点击"新建文件" 按钮,新建一个空白文件,点击 文件->另存为 输入文件名example1.c 选择工作空间对应的文件夹,保存. 3,点击FileView,右击Source File,点

MingW-v4.8.0+EDE-v13.04 配置使用C语言图形库

From: http://www.cnblogs.com/killerlegend/p/3946768.html Author:KillerLegend Date:2014.8.30 MingW的配置教程在这儿: http://www.cnblogs.com/killerlegend/p/3746504.html EDE图形库可以到这儿下载: http://misakamm.bitbucket.org/man/index.htm,其源代码在这儿:http://sourceforge.net/p/