iOS DeveloperiOS学习笔记iOS开发

swift学习随笔 Day3

2017-03-02  本文已影响31人  RadioHeadache

switch语句

/*
 1. 值可以是任何类型
 2. 作用域仅在case内部
 3. 不需要break
 */

let name = "老王"

switch name {
case "老王":
    let age = 80
    print("hi")

case "老李": break

//case里面没有代码的时候,需要用需要有break
    
default:
    print("other")
}

字符串

与OC对比

OC里面string是NSString,继承自NSObject,是对象。而swift中的String是结构体。

支持遍历

var str: String = "你好世界"

for  c in str.characters {
    print(c)
}

//consle输出的结果为
/*
你
好
世
界
*/

NSString不支持遍历

字符串的拼接

//字符串的拼接
let name = "老王"
let age = 80
let title = "小黑"

print(name + String(age) + title)
print("\(name)\(age)\(title)")

字符串的格式

swift里没有类似oc的stringWithFormat,但是有其他替代的语法。

let h = 9
let m = 5
let s = 8

let timeStr = "\(h):\(m):\(s)"//没有格式
//输出为 "9:5:8"

let timeStrWithFormat = String(format: "%02d:%02d:%02d", arguments: [h, m, s])//有格式
//输出为 "09:05:08"

Range的变化

在swift中,Range的变化很大,如果要用OC中的subStringWithRange(NSMakeRange(range, NSRange),取出string中的某些字,要把String改成NSString

(str as NSString).substring(with: NSMakeRange(2, 2))
//转换成NSString再使用NSMakeRange方法

str.substring(with: Range<String.Index>)

常量和变量

开发的时候,首选let,不得不修改的时候才使用var

循环

旧的写法

这种写法在最新版本的额xcode里面会报错,并被fix成下面提到的开区间的写法

for var i = 0; i < 10; i++ {
    print(i)
} 

开区间

//从0到9
for i in 0 ..< 10 {
    print(i)
}

/*
    输出结果为:
    0
    1
    2
    3
    4
    5
    6
    7
    8
    9
*/

闭区间

//从0到10
for i in 0...10 {
    print(i)
}

/*
    输出结果为:
    0
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
*/
上一篇下一篇

猜你喜欢

热点阅读