Swift教程第二章(4)–Swift基础 方法、继承 ##方法 ###实例方法 class Counter{ var count=0 func increment{ count++ } func incrementBy(amount:Int){ count+=amount } func reset(){ count=0 } func foo(#foo:Int){ count+=foo } //or //func foo(foo _foo:Int){ // count+=_foo //} } #为外部参数名称 ###self self为该实例本身 ###类型方法(type methods) 声明累的类型方法,在方法的func前加上class;声明结构体、枚举的类型方法在func前加上static class: class SomeClass{ class func someTypeMethod(){ //to do something } } SomeClass.someTypeMethod() struct: struct SomeClass{ static func someTypeMethod(){ //to do something } } SomeClass.someTypeMethod() ##附属脚本 使用关键字subscript,语法: subscript(index:Int)->Int{ get{ //返回 } set(newValue){ //赋值 } } 🌰:) struct TimeTable{ let mutiplier:Int //只读型 subscript(index:Int)->Int{ return mutiplier*index } } let threeTimesTable=TimeTable(mutiplier:3) println("\(threeTimesTable[6])") //输出 18 ##继承 ###父类 class Vehicle{ var numberOfWheels:Int var maxPassengers:Int func description()->String{ return "\(numberOfWheels)\(maxPassengers)"...…
古文名言警句
古文名言警句 《诫子书》–诸葛亮 夫君子之行,静以修身,俭以养德; 非澹泊无以明志,非宁静无以致远。 夫学须静也,才须学也; 非学无以广才,非志无以成学。 怠慢则不能励精,险躁则不能冶性。 年与时驰,意与岁去,遂成枯落,多不接世。 悲守穷庐,将复何及! …
Swift教程第二章(3)
Swift教程第二章(3)–Swift基础 类和结构体、指针、属性 ##类和结构体 ###定义 //类 class SomeClass{ //class definition goes here } //结构 struct SomStructure{ //structure definition goes here } ###类和结构体实例 let someClass=SomeClass() let somStructure=SomStructure() ###属性访问 使用.访问类或结构体中的属性 ###结构体类型的构造器 struct Resolution{ var width = 0 var heigth = 0 } var resolution=Resolution(width:300,heigth:400) 与结构体不同,类实例没有默认的构造器 ###结构体和枚举是值类型 结构体、枚举总是通过被复制的方式在代码中传递 let hd = Resolution(width:300,heigth:400) var cinema = hd cinema.width = 2048 println("cinema is now \(cinema.width) pixels wide") // 输出 "cinema is now 2048 pixels wide" println("hd is still \(hd.width ) pixels wide") // 输出 "hd is still 1920 pixels wide" var cinema = hd传递的时hd的拷贝,对cinema的修改不影响hd的属性,枚举也遵循此规则 ###类是引用类型 引用类型在被富裕到一个变量,常量或者被传递到一个函数时,操作的是实例本身而不是其拷贝 ##恒等运算符 ===(!==)表示连个类类型(class type)的常量或者变量引用同一个类实例 ==(!=)表示两个实力的值“相等”或“相同”,判定时要遵照类设计者定义的评判标准 ##指针 Swift中使用其他语言指针时,与其他的变量或常量定一方是相同 ###集合(Collection)类型的复制和拷贝行为 Swift中数组(Array)和字典(DIctionary)类型均以结构体的形式实现 字典类型被复制的是对象的拷贝 数组类型被复制的时对象的引用,当改变数组结构时(添加或移除一个元素)会在原数组的拷贝对象上操作...…
Swift教程第二章(2)
Swift教程第二章(2)–Swift基础 闭包、枚举 ##闭包 ###闭包表达式 func backwards (s1:String,s2:String)->Bool{ return s1>s2 } var reversed=sort(names,backwards) //闭包表达式语法 //格式 {(parameters)-> returnType in //statements } //上面的方法改写形式 var reversed=sort(names,{(s1:String,s2:String)->Bool in return a1>s2 }) //根据上下文判断类型 var reversed=sort(names,{s1,s2 in return a1>s2}) //单行表达式闭包可以省略return var reversed = sort(names,{s1,s2 in s1 > s2}) //参数名简写 //通过$0,$1,$2等名字来引用闭包的参数值 var reversed = sort(names,{$0 > $1}) //运算符函数 var reversed = sort(names , >) ###Trailing闭包 var reversed = sort(names){$0 > $1} ###捕获(Caputure) func makeIncrementor(forIncrement amount:Int) -> ()->Int{ var total=0; func incrementor()->Int{ total+=amount return total } return incrementor } ##枚举 ###枚举定义 enum CompassPoint { case North case South case East case West } //or enum Planet{ case Mercury,Benus,Earth,Mars,Jupiter,Saturn,Uranus,Nepturn }...…
Swift教程第二章(1)
Swift教程第二章(1)–Swift基础 Swift基础、基本运算符、流程控制、函数 ##Swift基础 ###基本类型 Int,Double,Float,Bool,String,Array,Dictonary ###常量和变量的命名** 允许使用`unicode`字符命名变量名可。 ###注释 `// 这是一个注释` or `/*这是` `多行注释*/` ###分号 每条语句并非强制要求使用`;`如一行多条语句可以用作分隔,但不推荐。 例如: let name="jack";pringln(name) ###数值型字面量 十进制,没有前缀 二进制,Ob 八进制,O0 十六进制,Ox ###元组 let http200Status = ( statusCode : 200 , description: "OK") println("this status code is \(http200Status.statusCode)") ###断言 条件成立继续执行,不成立则停止 let age=-3 assert(age>=0,"error") ##基本运算符 ###区间运算符 [1,3] 1...3 [1,3) 1..3 ##流程控制 ###switch** //范围匹配 switch count{ case:0 case:1...3 case:4...999_999 } //元组 swicth somePoint{ case(0,0): println("0,0") case(_,0): println("_,0") case(-2...2,-2...3) println("") deafault: println("eles") } //值绑定 swich anotherPoint{ case (let x,0): case (0,let y): } //where swich yetAnotherPoint{ case let(x,y) where x==y: case let(x,y) where x==-y: } ###控制转移语句** - continue - break - fallthrough...…
Swift教程第一章
Swift教程第一章–Swift初见 ##变量声明 let 声明常量 var 声明变量 //直接赋值 var a = 70 //指定类型 var b : Double =70 var age=20; var msg="I am " var say=msg+String(age) //or var say="I am \(age)" ###数组&字典 var people = ["Jack","Mike"] var rank =["Jack":1,"Mike":2] 初始化 var people=[] or var people =String[]() var rank=[:] or var Dictionary<String,Float>() ###控制流 for in if boolExpression {} switch 不需要break 试一下没有default 遍历一个字典 for (key,value) in dic while boolExpression {} do{} while boolExpression 普通循环 for var i=0;i<3;i++{} or for i in 0..3{} *方式和python很像* ###函数和闭包 func greet(name:String,day:String)->String{ return "Hello \(name), today is \(day)."; } greet(" Bob", "Tue sday ") //`->`指定返回值 //返回一个元组 func getGasPrices() ->...…