您的位置:首页 > 移动开发 > Swift

我的Swift日记

2015-06-10 22:12 337 查看
写下每天学习swift的进度,分享一些心得,顺便鞭策自己

今天完成了基本语法的学习,大致有以下几点体会:

1.变量的声明类似于jsp,在加上“:”明确类型后使用起来很方便

譬如:

var variableValue //变量

let constantValue //常量

2.简单程序给人相同于脚本语言的感受

3.Swift同样支持class 以及和C++基本相同的继承,重载特性

class NamedShape{

var numberOfSide:Int=0

var name:String

init(name:String){

self.name=name

}

func simpleDescription()->String{

return "A shape with \(numberOfSide) sides"

}

}

//继承

class Circle: NamedShape{

var radius:Double

init(name:String,radius:Double) {

self.radius=radius

super.init(name:name)

numberOfSide=1

}

//增加新方法 "func"表示一个新方法类似于jsp的"function"
"->"用于指定返回值类型

func area()->Double{

return radius*radius*3.14

}

//override重载标志

override func simpleDescription() -> String {

return "A shape with only one sides"

}

}

4.循环结构的新特性

var firstForLoop=0

for i in 0..<4{

firstForLoop+=i

}

println(firstForLoop)

//输出的first firstForLoop的值为6 用..表示缺省

5.set、get 方法略有不同

默认的set get的值 直接赋值给默认的newValue

6.枚举多样性增强

//与C语言类似的枚举

enum Rank:Int{

case Ace=1

case two,three,four,five,six,seven,eight,night,ten

case Jack,Queen,King

func simpleDescription()->String{

switch self{

case .Ace:

return "ace"

case .Jack:

return "Jack"

case .Queen:

return "Queen"

case .King:

return "King"

default:

return String(self.rawValue)

}

}

}

func compareValue(a:Rank,b:Rank)->String{

if a.rawValue>b.rawValue{

return "\(a.simpleDescription()) is bigger than \(b.simpleDescription())"

}

else if a.rawValue==b.rawValue{

return "\(a.simpleDescription()) and \(b.simpleDescription()) are the same"

}

else{

return "\(b.simpleDescription()) is bigger than \(a.simpleDescription())"

}

}

//未直接赋值的枚举

enum Suit{

case Spades,Clubs,Hearts,Diamonds

func simpleDescription()->String{

switch self{

case .Spades:

return "spades"

case .Clubs:

return "clubs"

case .Hearts:

return "hearts"

case .Diamonds:

return "diamonds"

}

}

func colorOf()->String{

switch self{

case .Spades,.Clubs:

return "black"

case .Hearts,.Diamonds:

return "black"

}

}

}

//同一个实例中可以有不同的值

enum SeverResponse{

case Result(String,String)

case Error(String)

}

let success = SeverResponse.Result("6:00 am","8:00pm")

let failure = SeverResponse.Error("Out of cheese")

switch success {

case let .Result(sunrise,sunset):

let severResponse = "Sunrise is at \(sunrise) and sunset is at \(sunset)."

println(severResponse)

case let .Error(error):

let severResponse = "Failure... \(error)"

println(severResponse)

}

7.protocol 的实现类似java的interface

2015.6.9
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: