您的位置:首页 > 移动开发 > Swift

iOS讲解迷惑--Swift中函数的使用

2015-10-22 23:12 525 查看
import UIKitvar str = "Hello, playground"// 函数// 语法格式/*func name (参数列表) -> 返回值 {    函数实现体}*/// 无参, 无返回值func hello1(){    print("hello1")// "hello1\n"}// 无参, 无返回值, 等价于上面func hello2() -> Void {    print("hello2")// "hello2\n}// 调用函数hello1()hello2()// 有参// 1, 关于内部参数名// 2. 只在函数作用域内部使用的参数名func hello3Name(name: String, name2: String) {    print("你好\(name) and \(name2)")// "你好李云飞 and 李云龙}// 除了第一个参数, 后面的参数在调用的时候会自动生成一个与内部参数名相同的外部参数名// 原则上, 第一个参数的外部参数名应该写在函数名的末尾hello3Name("李云飞", name2: "李云龙")func hello4Name(mingzi1 name:String, mingzi2 name2: String) {    print("你好\(name) and \(name2)")}//hello4Name(mingzi1: <#T##String#>, mingzi2: <#T##String#>)// 外部参数名的添加规则 在内部参数名前面声明中间使用空格隔开hello4Name(mingzi1: "李云飞", mingzi2: "李云龙")// 添加占位符, 去掉自动生成的外部参数名func hello5 (name : String, _ name2: String) {    print(name + name2) // 直接拼接     print("你好\(name) and \(name2)") //}//hello5(<#T##name: String##String#>, <#T##name2: String##String#>)hello5("李云飞", "李云龙")// 可以为参数赋初始值, 调用时传参则不更改, 不传参使用初始值func hello6 (name:String = "李云飞", name2: String = "李云龙") {     print("你好\(name) and \(name2)")}// 调用函数有 两个可选的//hello6() // 第一种 不用传参// 第二种 可以只传任意一个参数//hello6(<#T##name: String##String#>, name2: <#T##String#>)//hello6()hello6("仝兴伟") // 把 李云龙 改为 仝兴伟//hello6(name2: "老仝") // 你好李云飞 and 老仝//****************有返回值的情况// 返回值 直接给类型// 无参有返回值func byebye1()-> String {    return "bye"}byebye1()// 写一个函数 传入一个字符串, 返回元音的个数和辅音的个数func yuanYinCountAndFuYinCount(ziMuString: String) -> (Int, Int) {    var yuanYinCount = 0 // 元音计数    var fuYinCount = 0 // 辅音计数    // 遍历字符    for tmpStr in ziMuString.characters {                print(tmpStr) // (11 times)        switch tmpStr {            case "a", "e", "i", "o" , "u":            yuanYinCount++        default:            fuYinCount++        }    }    // 返回元组    return(yuanYinCount, fuYinCount) // 返回元音数量, 辅音数量}print(yuanYinCountAndFuYinCount("aeidshuflsj")) // 元音四个, 辅音7个// 不确定参数个数, 传进来n个Int类型的参数 (同一类型)// 参数个数可变func count2 (numbers: Int...) -> Int {    var sum = 0        // 不确定个数的参数作为数组使用    for num in numbers {        sum += num;    }    return sum}count2(1, 3, 5, 2)// 参数在函数体内默认是不可变的, 使用var修饰就可变了func count3 (var a: Int, b: Int) -> Int {//   a = a + b    a++//    b++    return a // 11}var c = 10c = count3(c, b:0)c// 用inout修饰参数, 将参数的外部变量的地址传进来从而改变外部变量的值func changeValue (inout a: Int) {    a++    print(a) // "12\n"}changeValue(&c) // 传地址过去c
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: