使用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
 型的参数并返回一个 Int型的值的函数’,并让这个新变量指向 addTwoInts函数”。

函数类型完全象一个变量类型一样,还可以作为参数和返回值。

嵌套函数

嵌套函数只在父函数内部可见,但也可以被父函数作为返回值返回到外部,
使得这个函数可以在外部被使用。。

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 中文版
The Swift Programming Language 2.0 官方教程

中文版的教程有些老了,还是基于Swift 1.0的,有些函数已经发生了变化,可以对照看官方教程。

本文作者: 阳春面
原文地址:http://www.aswifter.com/2015/07/15/learn-swift-with-playground-func/

欢迎关注我的微信公众号,分享Android 开发,IOS开发,Swift开发和互联网内容
微信号:APP开发者

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值