var str : String = "nihao"swift
var numStr = "4"數組
var realNumber =5數據結構
var sum = numStr + realNumber//這麼寫編譯器會提示error 因爲不支持隱式的類型轉換var nilStr : String? ="nilOrNotNil"閉包
nilStr = nil函數
var numStr = "4"oop
var realNumber =5性能
var sum =numStr.toInt()! +realNumber學習
var numbers = [1,5,2,1,6]spa
var dict = ["isNew" :"yes",指針
"name" : "Swift"]
numbers[3] =4
numbers = [4,5,6,7,8,9]
var largeThanThree = 0
for n innumbers {
if n > 3 {
largeThanThree++
} else {
largeThanThree--
}
}
largeThanThree //6
遍歷字典時可以獲取key value
for (question , answer) indict {
if question == "isNew" {
answer //yes
} else {
answer //swift
}
}
對於optional在if語句中的使用需要注意一下
var optionalStr : String? ="swift"
var greeting : String? ="nihao"
optionalStr = nil
if let name = optionalStr {
greeting = "nihao , \(name)" //不會運行
}
但是假設optionalStr 沒有被賦值爲nil,也就是仍然爲"swift"則會給greeting變量賦值爲"nihao, swift"
switch語句
Swift的switch支持對String的case比較
let object = "water"
var statement = "the object is "
switch object {
case "ice" :
statement += "冰"
case "water" ,"other":
statement += "水"
default :
statement += "未知"
}
statement //"the object is水"
while語句
var big = Int8.max//127 八位integer最大值
while big > 0 {
big--
}
控制範圍的for
把一般的for循環用swift寫會是
var loop = 0
for var i = 0; i < 3; i++ {
loop++
}
loop //3
現在swift支持了一種新的語法來完畢這樣的操做
loop = 0
for i in 0..3 {
loop++
}
loop //3
那假設想讓i取邊界值,可以用0...3來取代0..3
函數
函數在Swift中變得十分靈活起來,它可以支持單一返回值,返回多個值,甚至嵌套函數,返回函數或者用函數做爲參數等等。
func sayHello(person name : String, weekday day : String) -> String {
return"hello \(name), today is \(day)"
}
var res = sayHello(person:"mattt", weekday : "monday")
->做爲返回值符號, name前的person 屬於參數表述,也可以不加直接將值傳遞進去,這裏爲了函數方便使用才加上。
可變參數的多返回值
多個不一樣類型或一樣類型的值組成的數據結構Swift裏稱爲元組(tuple)
如下一個函數傳入可變參數,使用元組返回多個值
func caculate(numbers: Int...) -> (Int,Int) {
var nSum = 0
var nAvg = 0
for number in numbers {
nSum += number
}
nSum
nAvg = nSum / numbers.count
return (nSum, nAvg)
}
var (s: Int, a: Int) = caculate(1,2,3)
s //6
a //2
嵌套函數
func funs(number : Int) ->Int {
var y = 10 + number
func add() {
y++
}
add()
return y
}
函數也可以做爲返回值進行傳遞
func makeIncrementer() -> (Int ->Int) {
func addOne(number: Int) ->Int {
return 1 + number
}
return addOne
}
var increment = makeIncrementer()
increment(7)
閉包函數
var numbers: Int[] = [4,3,1,2,5]
numbers.map({
(number: Int) -> Int in
let result = 3 * number
return result
})
這篇博客簡介了Swift初步的使用,假設有不當的地方但願指出。