我的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
今天完成了基本语法的学习,大致有以下几点体会:
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
相关文章推荐
- iOS-swift-如何实现崩溃树级别文件夹和扩大
- 【swift系列之UIButton】简单使用
- swift与OC的区别(持续更新)
- Swift UITableView使用自定义cell
- Grand Central Dispatch Tutorial for Swift: Part 2/2
- iOS 下拉刷新和加载更多 (OC\Swift)
- 业界资讯:ActionSwift3
- swift 字符串,数组,字典 的那些事<三>
- swift 字符串,数组,字典 的那些事<二>
- 【swift】15-0610 下标 继承和扩展 初始化和反初始化
- Swift学习笔记十
- swift2.0_语法改动详细说明
- Swift语法之?和!区别
- Swift学习笔记-面向对象3
- 一张图看WWDC 2015
- swift 字符串,数组,字典 的那些事<一>
- 苹果Swift编程语言入门教程【中文版】
- Swift学习笔记九
- 转 Grand Central Dispatch 基础教程:Part 1/2 -swift
- 【Swift】TTTAttributedLabel使用小记