我的Swift日记

写下每天学习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
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章