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人!
Swift2.0语言教程之Swift2.0语言中的标准函数的更多相关文章
- Zabbix3.0基础教程之二:item、trigger、action、graph配置
一.Zabbix监控报警过程 在一次完整的Zabbix配置中,需要涉及到的术语有以下几项: 1.host groups:主机组,按生产需求将功能类别相近或相同的主机进行分组,便于管理. 2.host: ...
- 《Ruby语言入门教程v1.0》学习笔记-01
<Ruby语言入门教程v1.0> 编著:张开川 邮箱:kaichuan_zhang@126.com 想要学习ruby是因为公司的自动化测试使用到了ruby语言,但是公司关于ruby只给了一 ...
- Linux内核源码分析--内核启动之(3)Image内核启动(C语言部分)(Linux-3.0 ARMv7)
http://blog.chinaunix.net/uid-20543672-id-3157283.html Linux内核源码分析--内核启动之(3)Image内核启动(C语言部分)(Linux-3 ...
- L脚本语言语法手冊 0.10版
L脚本语言语法手冊 0.10版 简 介 L脚本语言是一个轻量级的,旨在接近自然语言的编程语言,眼下支持在中文.英文基础上的编程.并可扩展为随意语种.L脚本语言的语法结构简单.程序结构相对 ...
- 【C语言学习笔记】C语言函数执行成功时,返回1和返回0,究竟哪个好?
基本上,没有人会将大段的C语言代码全部塞入 main() 函数,更好的做法是按照复用率高,耦合性低的原则,尽可能的将代码拆分不同的功能模块,并封装成函数.C语言代码的组合千变万化,因此函数的功能可能会 ...
- Ubuntu下使用C语言连接Mysql 8.0客户端教程
Ubuntu下如何C语言程序连接MYSQL 8.0(全教程) 1. 安装GCC(略) 2. 安装mysql(本人使用的是最新MySQL 8.0版本) sudo apt install mysql-cl ...
- 使用VS Code开发.Net Core 2.0 MVC Web应用程序教程之二
好了,废话也不多说,咱们直接来看看这款MVC的造型——你可能会大吼:“这……这特么的都是些什么鬼?” 靠,告诉你吧,我也不知道这都是些什么鬼,反正以前我是没有见过这样的MVC.咦,老纸的config文 ...
- swift语言点评十五-$0
import UIKitimport XCPlayground class ViewController: UIViewController { func action() { print(" ...
- Xamarin XAML语言教程控件模板的模板绑定
Xamarin XAML语言教程控件模板的模板绑定 控件模板的模板绑定 为了可以轻松更改控件模板中控件上的属性值,可以在控件模板中实现模板绑定功能.模板绑定允许控件模板中的控件将数据绑定到公共属性上. ...
随机推荐
- FPGA基础知识8(FPGA静态时序分析)
任何学FPGA的人都跑不掉的一个问题就是进行静态时序分析.静态时序分析的公式,老实说很晦涩,而且总能看到不同的版本,内容又不那么一致,为了彻底解决这个问题,我研究了一天,终于找到了一种很简单的解读办法 ...
- 使用solrJ管理索引——(十四)
a) 什么是solrJ solrj是访问Solr服务的java客户端,提供索引和搜索的请求方法,SolrJ通常在嵌入在业务系统中,通过SolrJ的API接口操作Solr服务,如下图:
- imperva-代理安装
首先创建网关上面的监听端口
- python函数,模块及eclipse配置python开发环境
一.eclipse的使用 1.作用 (1)最好用的IDE (2)可调式debug (3)查看可执行过程 (4)可查看源代码 2.安装eclipse及配置 目录安装Pythonpython for ec ...
- MySQL参数设置
InnoDB配置 从MySQL 5.5版本开始,InnoDB就是默认的存储引擎并且它比任何其它存储引擎的使用要多得多.那也是为什么它需要小心配置的原因. 1 innodb_file_per_table ...
- Runtime - Associated Objects (关联对象) 的实现原理
主要围绕3个方面说明runtime-Associated Objects (关联对象) 1. 使用场景 2.如何使用 3.底层实现 3.1 实现原理 3.2 关联对象被存储在什么地方,是不是存放在被 ...
- 线性表应用--Josephus问题的解法(Python 版)
线性表应用 --Josephus问题的解法(Python 版) Josephus问题描述:假设有n个人围坐一圈,现在要求从第k个人开始报数,报到第m个数的人退出.然后从下一个人开始继续报数并按照相同的 ...
- python基础学习之路No.2 数据类型
python中常见的数据类型有:整数.浮点数.字符串.列表.元组.字典 python相较其他语言,可以省略了声明,可以直接定义赋值使用. 例如: a=12 就相当于 其他语言中的 int a=12 ...
- Git 撤销操作、删除文件和恢复文件
大致介绍 经过前面的学习,已经建立了版本库,并上传了文件,这次来学习对这些文件进行基本的操作,即: ◆ 撤销操作 ◆ 删除文件 ◆ 恢复文件 我在此之前,已经将三个文件提交到了版本库 撤销操作 撤销操 ...
- Linux学习笔记:pwd与dirs的区别
在Linux中可以使用pwd和dirs进行当前目录查看,分别用于显示当前目录和显示完整目录记录.具体如下: 1.pwd 显示当前目录 2.dirs 显示目录堆叠中的记录 END 2018-08-21 ...