标签:
第五节:可选类型 optional
1 //: Playground - noun: a place where people can play 2 3 import UIKit 4 5 /* 6 Swift学习第五节 7 可选类型 optional(可能是任何值) 8 9 10 */ 11 let possibleNumber = "520" 12 var result = Int(possibleNumber) 13 print(result) 14 result.dynamicType 15 //上面就是一个可选类型的举例,possibleNumber开始是一个string,然后强转为Int,这里可能失败(可能转为Int,也可能是nil). 16 17 var x:Int? //定义一个可选类型x,可能Int也可能其他.默认为nil 18 var address:String? 19 var successRate:Double? 20 21 result = nil //可以为一个可选类型赋值为nil,但是普通类型不可以 22 23 //访问可选类型 24 if result != nil{ 25 print(result!) 26 } 27 //print(x!) error;可选类型不能直接输出,必须先行判断 28 29 if let num = result{ 30 print(result) 31 }else{ 32 print("num为nil") 33
第六节:函数 函数参数
1 //: Playground - noun: a place where people can play 2 3 import UIKit 4 /* 5 swift学习第六节 6 函数 函数参数 7 func 方法名(参数名:参数类型){ 8 方法体 9 } 10 */ 11 //写一个方法 12 func printName(){ 13 print("my name is 少停") 14 } 15 printName()//调用 16 17 18 func ten(num:Int){ 19 print("\(num * 10)") 20 } 21 ten(20) 22 23 func mult(num1:Int,num2:Int){ 24 print("\(num1*num2)") 25 } 26 mult(20, num2: 10) //num2 为外部参数名 27 28 func create(num3:Int,_ num4:Int){ 29 print("\(num3*num4)") // _ 使用_代替外部参数名简化 30 } 31 create(1, 2) 32 33 func make(NUM1 num1:Int,NUM2 num2:Int){ 34 print("\(num1*num2)") 35 } //NUM1 NUM2 外部参数名,外部参数名只是方便理解 36 make(NUM1: 3, NUM2: 4) 37 38 func make1(NUM1 num1:Int = 11,NUM2 num2:Int = 11){ //为参数赋初始化 39 print("\(num1*num2)") 40 } 41 make1() 42 43 func arySum(number:Double ...){//参数为Double类型的number,可以有很多个 44 var sum: Double = 0 45 for i in number{ 46 sum += i 47 } 48 print("\(sum)") 49 } 50 arySum(1,2,3,4,5) 51 arySum(1,2) 52 53 //func sum(value : Int){ 54 // value++ 55 //} error:swift中函数参数分为常量参数和变量参数,函数参数默认是常量参数,不能修改. 56 57 func sum(var value:Int){ 58 value++; 59 } 60 var m = 10; 61 sum(m); 62 m 63 //在函数内对一个参数进行修改后,在函数外部仍然不会改变 64 65 func summ(inout value:Int){//想在函数内修改参数后,在外部仍然有效需要使用inout 66 value++ 67 } 68 var n = 10 69 summ(&n) 70 n
第七节:函数 函数返回值和类型
1 //: Playground - noun: a place where people can play 2 3 import UIKit 4 5 /* 6 swift学习第七节 7 函数 函数返回值和类型 8 9 */ 10 func sum(num1:Int,num2:Int) -> Int{ //返回一个返回值 11 return num1*num2; 12 } 13 var m = sum(2, num2: 3) 14 15 func num(num1:Int,num2:Int) -> (Int,Int){ //返回两个返回值 16 return (num1,num2) 17 } 18 var table = num(25, num2: 52) 19 table.0 20 table.1 21 22 func num2(num1:Int,num2:Int) -> (n1:Int,n2:Int){ //返回两个返回值,且为返回值赋名 23 return (num1,num2) 24 } 25 var nn = num2(9, num2: 1) 26 nn.n1 27 nn.n2 28 29 func string2Int(str:String) -> Int?{ 30 return Int(str) 31 } 32 var n = string2Int("132") 33 n.dynamicType 34 35 36 var f1:(Int,Int) -> Int = sum 37 var f2:(Int,Int) -> (Int,Int) = num 38 var f3:String -> Int? = string2Int 39 //---------------------------------------------------------------- 40 //把函数作为参数使用:execute为一个函数,这个函数有两个参数,一个参数是一个函数(参数为string,返回值是int),另外一个参数是string 41 func execute(fn:(String) -> Int?,fnParam:String){ 42 fn(fnParam) 43 } 44 execute(f3, fnParam: "1000") 45 46 //---------------------------------------------------------------- 47 48 //func increment(n:Int) -> Int{ 49 // return n+1 50 //} 51 //func decrement(n:Int) -> Int{ 52 // return n-1 53 //} 54 ////whichOne函数:有一个参数n,返回值是一个函数(参数是int,返回值也是int) 55 ////func whichOne(n:Bool) -> ((Int) -> Int){ 56 //// return n ? increment : decrement 57 ////} 58 //typealias op = (Int) -> Int 59 //func whichOne(n:Bool) -> op{ 60 // return n ? increment : decrement 61 //} 62 //var one = 1 63 //var one2Ten = whichOne(one < 10) 64 //while one < 10 { 65 // one = one2Ten(one) 66 //} 67 //上面的代码可以使用内嵌函数增强可读性 68 typealias op = (Int) -> Int 69 func whichOne(n:Bool) -> op{ 70 func increment(n:Int) -> Int{ 71 return n+1 72 } 73 func decrement(n:Int) -> Int{ 74 return n-1 75 } 76 77 return n ? increment : decrement 78 } 79 var one = 1 80 var one2Ten = whichOne(one < 10) 81 while one < 10 { 82 one = one2Ten(one) 83 }
第八节:Closures
1 //: Playground - noun: a place where people can play 2 3 import UIKit 4 /* 5 swift学习第八节 6 Closures 7 8 9 */ 10 let ten = 10 11 var addClosure: (Int,Int) -> Int = {(a:Int,b:Int) -> Int in 12 return a + b 13 } 14 addClosure(1,2) 15 addClosure = { a, b in return a + b} 16 addClosure = {a, b in a + b} //Single expression closure 17 addClosure = {$0 + $1}
源码下载:http://download.csdn.net/detail/shaoting19910730/9463646
https://github.com/pheromone/swift2
标签:
原文地址:http://www.cnblogs.com/shaoting/p/5293291.html