使用Playground快速练习Swift语法--函数的使用
函数定义和调用func sayHello(personName: String) -> String { let greeting = "Hello," + personName + "!" return greeting } print(sayHello("阳春面")) 多重返回值函数这个是在Java里期盼了好多年都没实现的功能。。。 func getMyInfo() -> (name:String,age:Int){ let name = "阳春面" let age = 30 return (name,age) } let myInfo = getMyInfo() print("name: (myInfo.name),age: (myInfo.age)") 实际上,就是返回了一个元组(tuple)类型,这是多返回值的变相实现~~~ 指定外部调用函数参数名func join(string s1: String,toString s2: String,withJoiner joiner: String = " ") -> String { return s1 + joiner + s2 } join(string: "hello",toString: "world",withJoiner: "-") Swift 1.0中支持的#参数名这种默认外部参数的写法在2.0里已经不支持了。 可变参数在参数类型后面加"..."代表可变参数,相当于传入的是个数组类型 func arithmeticMean(numbers: Double...) -> Double { var total: Double = 0 for number in numbers { total += number } return total / Double(numbers.count) } arithmeticMean(1,2,3,4,5) In-Out参数通过inout修饰的参数,实际上传入的是引用,函数外部的变量会在函数体中被修改掉。 func swapTwoInts(inout a: Int,inout b: Int) { let temporaryA = a a = b b = temporaryA } var someInt = 3 var anotherInt = 107 swapTwoInts(&someInt,b: &anotherInt) print("someInt is now (someInt),and anotherInt is now (anotherInt)") 函数类型func addTwoInts(a: Int,b: Int) -> Int { return a + b } var mathFunction: (Int,Int) -> Int = addTwoInts 这个可以读作:“定义一个叫做mathFunction的变量,类型是‘一个有两个Int 函数类型完全象一个变量类型一样,还可以作为参数和返回值。 嵌套函数嵌套函数只在父函数内部可见,但也可以被父函数作为返回值返回到外部, func chooseSayHelloFunction(lang: String) -> (String) -> String{ func sayHelloInChinese(name: String) ->String{ return "你好 "+name } func sayHelloInEnglish(name: String) -> String{ return "hello "+name } return lang == "cn" ? sayHelloInChinese: sayHelloInEnglish } let sayHelloInChinese = chooseSayHelloFunction("cn") print(sayHelloInChinese("阳春面")) 参考资料The Swift Programming Language 中文版 中文版的教程有些老了,还是基于Swift 1.0的,有些函数已经发生了变化,可以对照看官方教程。
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |