写下每天学习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