http://www.imooc.com/learn/127
《玩儿转swift》 慕课网教程笔记,自己根据2.1的语法做了更新。
I.
1.通过playground来学习、熟悉swift语言的特性。
2.元组 声明时可以每一个元素有名字,之后可以用.访问
var t=(x:1,y:2,z:"hi") // var t : (Int,Int,String) var (a,_,_)=t // _ 匿名 print(t.0) // or t.x
3.可选类型
用法: .toInt 返回可以是nil
强制类型转换不能为可选型。
可选型的解包: 把可选型转化为肯定型,加!号即可。
if let x=name {}也可用来解包
II.
1. Int.min
2.a===b or a!==b 类型比较
3.Nil Coalescing Operator a ?? b 注意空格
4.范围运算符 a...b a..<b
5.for循环内部,index是常量
III.
1.String返回长度: .characters.count 好复杂。
2.插值"()"
3. .hasPrefix .hasSuffix
.capitalizedString
.uppercaseString .lowercaseString
4.trim
5.split .componentsSeparatedByString
6.join .join
7.Range & String.Index
.rangeOfString 可选类型 som 23..<25
.startIndex .endIndex
mainLoop: for t in m{ for o in t{ if o==1{ break mainLoop; } } }
VI.func
1.func sayHi ( name:String?) -> String{}
(1)返回为空,可不写返回,也可写返回 Void 或 ( )
(2)返回多个返回值,可返回一个元组
(3)传入、返回可以是可选型 (灵活应用 ?、!、??、nil)
{ (parameters) -> returnType in statements }
2.简化
(1)类型推断
{a,b in return a>b}
(2)一句话可省略return
(3)省略参数名。 {$0> $1}
3.trailing closure
4.capture values
5.函数和闭包是引用类型。
func calcTotalmiles( todayMiles:Int )-> ()->Int { var totalMiles =0 return { totalMiles += todayMiles; return totalMiles;} } var dailyTwoMiles = calcTotalmiles(2)
VIII.枚举
enum Plant{ case Mercury, Venus, Earth, Mars, Jupiter, Saturn, Uranus, Neptune }
1.已知类型,省略写法 .Earth
2.原始值
enum Planet: Int { case Mercury = 1, Venus, Earth, Mars, Jupiter, Saturn, Uranus, Neptune }
Month(rawValue:12) 可选类型