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
相关文章推荐
- iOS讲解迷惑--Swift的分支结构和循环
- iOS讲解迷惑--Swift基础(数据类型, 字符串, 数组, 字典 )
- iOS swift语言
- swift:入门知识之类和对象
- iOS经典讲解之Swift分支结构与循环详解
- iOS经典讲解之Swift数据类型详解
- ios深度解析之Swift(基本数据类型)
- iOS巅峰之Swift函数的详细用法(中)
- iOS巅峰之Swift笔记详解(上)
- swift:入门知识之函数与闭包
- Swift_初识Swift
- swift:入门知识之控制流
- Vickate_Swift2.0的方法总结 及 与C/OC的语法区别
- iOS Swift字符串截取
- swift:入门知识之简单值
- Swift高级开发语言--函数
- Swift高级开发语言基础
- Swift学习笔记之函数
- swift(二)
- WKWebView 怎么拦截URL 与JS的交互 (Swift)