Swift函数的使用
函数 //1.定义函数 func 函数名(传入的值:String) ->String{
return 传入的值
} //2.函数的调用 let 传入值 = "hallow xiaozhou" println("函数调用的结果为:(函数名(传入值))") //函数调用的结果为:hallow xiaozhou //3.函数的形式参数和它的返回值 //3.1多参和无参 //3.1.1 多参 func 长度(起始值:Int,终止值:Int) ->Int { return 终止值 - 起始值 } println("多参的最终结果为:(长度(2,6))") //多参的最终结果为:4 //3.1.2无参 func 问候语() -> String { return "你好" } println("接电话时,礼貌的做法是:第一句说(问候语())") //接电话时,礼貌的做法是:第一句说你好 //3.2无返回值 func 显示并计数(字符串:String){ println("(字符串)的长度为(countElements(字符串))") } 显示并计数("泪滴嘎嘎") //泪滴嘎嘎的长度为4 //3.3多返回值(返回值为元祖) func 取极值(数组:[Int]) -> (max:Int,min:Int) { var 最大值 = 数组[0] var 最小值 = 数组[0] for 变数 in 数组 { if 变数 > 最大值 { 最大值 = 变数 }elseif 变数 < 最小值 { 最小值 = 变数 } } return (最大值,最小值) } let array = [2,10,-1,23,72,7,1,100] let (max,min) = 取极值(array) println("数组(array)中最大值为:(max),最小值为:(min)") //数组[2,10,-1,23,72,7,1,100]中最大值为:100,最小值为:-1 //3.4可选元祖返回,添加"?"变为可选 func 取极值2(数组:[Int]) -> (max:Int,min:Int)? { if 数组.isEmpty { returnnil }else{ var 最大值 = 数组[0] var 最小值 = 数组[0] for 变数 in 数组 { if变数 > 最大值 { 最大值 = 变数 }elseif 变数 < 最小值 { 最小值 = 变数 } } return(最大值,最小值) } } //[Int]()空数组 let 极值 = 取极值2([Int]()) println("极值为:(极值)") //极值为:nil let 极值2 = 取极值2([1,2,3,4,0]) println("极值2为:(极值2)") //极值2为:(4,0) //4.本地参数和外部参数 //4.1有外部参数的函数(姓名,性别都是外部参数) func 个人信息(姓名 name:String,性别 sex:String) ->String{ return "你的姓名为:(name),性别为:(sex)" } let 信息 = 个人信息(姓名: "小周",性别:"女") println("个人信息:(信息)") //个人信息:你的姓名为:小周,性别为:女 //4.2本地参数名和外部参数名的统一(#) func 个人信息2(#姓名:String,#性别:String) ->String{ return "你的姓名为:(姓名),性别为:(性别)" } //调用结果与方式与有外部参数的函数一样,但这样更简洁 let 信息2 = 个人信息2(姓名: "小周",性别:"女") println("个人信息:(信息2)") //个人信息:你的姓名为:小周,性别为:女 //5.参数默认值 func 个人信息3(姓名:String,性别:String ="男") ->String { return "你的姓名为:(姓名),性别为:(性别)" } //5.1调用方法一:不用默认值("性别:"->有参数默认值自动把本地参数变成外部参数名 ) let 信息3 = 个人信息3("小周",性别:"女") println("个人信息:(信息3)") //个人信息:你的姓名为:小周,性别为:女 //5.2调用方法二:用默认值 let 信息4 = 个人信息3("小周") println("个人信息:(信息4)") //个人信息:你的姓名为:小周,性别为:男 //6.可变参数(数组集:Int...传的数组个数不一样),如果有多个参数,一定要把可变参数放在最后,不易混淆 func 求和(其他值:String,数字集:Int...) ->Int{ var 和 = 0 for 值 in 数字集 { 和 += 值 } return 和 } //1,2,3,5数字集,还可以向后面添加值,如:1,5,6,8,4,9等 let 和 = 求和("10",5) println("和为:(和)") //和为:11 //7.可变参数 let 名字 = "小周" //必须是”var“,不然默认是“let”,不可变 func 居右对齐(var 原文本:String,长度:Int,填充字符:String) ->String{ let 要填充的长度 = 长度 - countElements(原文本) for _ in 1...要填充的长度 { 原文本 = 填充字符 + 原文本 //在原文本的前面添加填充字符 }
return 原文本 } let b = 居右对齐(名字,"@") println(b) //@@@@@@@@小周 //8.In-Out参数(可以直接改变传进去参数的值) func 交换值(inout a:Int,inout b:Int){ let tem= a a = b b = tem } var a1 = 10,a2 = -10 交换值(&a1,&a2) println("a1原来的值为10,现在为(a1),a2原来的值为-10,现在为(a2)") //a1原来的值为10,现在为-10,a2原来的值为-10,现在为10 //9.函数类型作为变量和常量 func 两个数相加(a:Int,b:Int)->Int { returna+b } func 两个数相乘(a:Int,b:Int)->Int { returna*b } var 临时 = 两个数相加 临时(2,5)//7 临时 = 两个数相乘 临时(2,5)//10 //10.函数类型作为参数 func 显示相乘结果 (a:Int,b:Int,相乘函数:(Int,Int) ->Int) { let 结果 = 相乘函数(a,b) println("(a)乘(b)等于(结果)") } 显示相乘结果(10,100,两个数相乘) //10乘100等于1000 //11.嵌套函数(函数里面有函数) func 判断加减(正:Bool) -> (Int)->Int { //对外不可见 func 加(数:Int) ->Int{ return数+1 } func 减(数:Int) ->Int{ return数-1 } return 正 ? 减 : 加 } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- c# – 如何使用ASP.NET在Azure SQL中进行应用程序级数据加密
- c# – 如何使用Windows shell获取文件扩展名的大图标?
- objective-c – _objc_retain“,引自:Xcode 4.4中的__ ARC
- HP 瘦客户机 - 使用 ie4uinit.exe 应用时,Citrix HDX Flas
- 实用的正则表达式的总结
- 【百行代码话应用】flex WebService应用之QQ在线客服实现
- ajax php 实现写入数据库
- postgresql查询表列表、表结构
- ruby-on-rails – Rails 3:Rails期望什么样的CSS样式?
- c# – 在ITypeConverter中使用Automapper