Swift的笔记和参考

王朝学院·作者佚名  2016-08-27
窄屏简体版  字體: 小  |  中  |  大  |  超大  

好久没来了,趁着新语言Swift发布,继续钻研中!

Create Class创建类 (重载效果)

//Create Class 创建类classMyClass {//PRoperties 成员变量init() {//Constructor 构造函数}//Method 成员方法func doIt() {

println("doIt")

}

func doIt()->Int {return0}

func doIt(a:Int)->Int {returna

}

func doIt(a:Int, b:Int)->Int {returna +b

}

func doIt()->String {return""}

func doIt(a:String)->String {returna

}

func doIt(a:String, b:String)->String {returna +b

}

}//Create / Using an Instance 创建 / 使用 一个实例var a =MyClass()

a.doIt("Wang", b:"Zhipeng")

Enums枚举

//Enums 枚举enumComcSoftType: Int {caseDevelopmentEngineer =1caseTestEngineer =2}

var myType= ComcSoftType.DevelopmentEngineer

Declaring Variables变量的声明 (可选变量)

//Declaring Variables 变量的声明var mutableDouble:Double =1.0mutableDouble=2.0let constantDouble:Double=1.0//constantDouble = 2.0 Error 错误var autoDouble=1.0//Optional Value 可选变量 (新机制)var optionDouble:Double?//此刻 optionDouble 根本没有分配内存,对其取地址: &optionDouble 为NULLoptionDouble =1.0//这时候开始 optionDouble 才会开始分配内存iflet defineDouble =optionDouble {

println("已经分配内存")

}else{

println("没有分配内存")

}

Control Flow控制流

//Control Flow 控制流var condition =trueifcondition {

println("正确")

}else{

println("错误")

}

var val="Four"switchval {case"One":"One"case"Two","Three":"Two, Three"default:"default"}//omits upper value, use ... to include 省略了上限值,使用 ... 包括foriin0..3{

println("i = \(i)")

}forvar j =0; j <3; ++j {

println("j = \(j)")

}//Whilevar n =2whilen <100{

n= n *2}

println(n)

var m=2do{

m= m *2}whilem <100println(m)

String Quick Examples字符串的例子

//String Quick Examples 字符串的例子var firstName ="Zhipeng"var lastName="Wang"var helloString="Hello, \(lastName) \(firstName)"var tipString="2499"var tipInt=tipString.toInt()

extension Double {

init (string:String) {

self= Double(string.bridgeToObjectiveC().doubleValue)

}

}

tipString="24.99"var tipDouble= Double(string:tipString)

Array Quick Examples数组的例子

//Array Quick Examples 数组的例子var person1 ="One"var person2="Two"var array:String[]=[person1, person2]

array+="Three"forpersoninarray {

println("person: \(person)")

}

var personTwo= array[1]

println("personTwo: \(personTwo)")

Dictionary Quick Examples字典的例子 (泛型效果)

//Dictionary Quick Examples 字典的例子var dic:Dictionary<String, String> = ["One":"1","Two":"2","Three":"3"]

dic["Three"] ="4"//Update Threedic["One"] = nil//Delete Onefor(key, value)indic {

println("key: \(key), value: \(value)")

}

Function函数

//Function 函数func getPirces() ->(Double, Double, Double) {return(1.1,1.2,1.3)//tuple 元组}//取出元组var (one, two, three) =getPirces()

println("One = \(one), Two = \(two), Three = \(three)")

func getSum(numbers:Int...)->Int {

var sum=0fornumberinnumbers {

sum+=number

}returnsum

}

getSum()

getSum(1,3,5,7,9)

函数嵌套

//函数嵌套func nestedFunction() ->Int {

var x=0//func add() {

x+=1}//add()returnx

}

函数传递

//函数传递func makeIncrementer() -> (Int ->Int) {

func addOne(number:Int)->Int {returnnumber +1}returnaddOne

}

var increment=makeIncrementer()

increment(1)

func makeIncrementer2()-> ((String, String) ->String) {

func and(a:String, b:String)->String {returna +b

}returnand

}

var increment2=makeIncrementer2()

increment2("Wang","zhieng")

func lessThanOne(number:Int)->Bool {returnnumber <1}

func makeIncrementer3(list:Int[], condition:Int-> Bool) ->Bool {fornumberinlist {ifcondition(number) {returntrue}

}returnfalse}

makeIncrementer3([1,2,3,4,5], lessThanOne)

Extends 继承 (多态效果)

//Extends 继承 (多态效果)println("======================= Extends 继承")classPeople {//Eat 吃func eat() {

println("吃")

}//Sleep 睡func sleep() {

println("睡")

}//Work 工作func work() {

println("工作")

}//Said 说func said() {

println("我是人")

}

}classChinese:People {//Said 说overridefunc said() {

println("我是中国人")

}

}classAmericans:People {//Said 说overridefunc said() {

println("我是美国人")

}

}classAlien {//Eat 吃func unknown() {

println("外星人")

}

}//不支持多继承//class futureGenerations:Chinese, Americans {//Multiple inheritance from classes 'Chinese' and 'Americans'////Said 说//override func said() {//println("我是中国人和美国人的后代")//}//}//多态 必要条件:1.继承 2.重写 3.父类引用指向子类对象var people =People()

people.said()

people=Chinese()

people.said()

people=Americans()

people.said()//people = Alien() Error 'Alien' is not convertible to 'People'//people.said()var chinese=Chinese()

chinese.said()

var americans=Americans()

americans.said()

 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
© 2005- 王朝網路 版權所有 導航