學習一門新語言最經典的例子就是輸出“Hello World!” 如果你使用過其他語言,那麼看上去是非常的熟悉吧。但比一些c要簡單的多吧 1、不需要導入一些單獨的庫,比如輸入/輸出或字元串處理功能的類庫, 2、不需要在全局範圍內編寫的代碼用於作為入口點程式,所以你不需要 main()函數, 3、不需要 ...
學習一門新語言最經典的例子就是輸出“Hello World!”
print("Hello World!") swift就是這樣來輸出的。
如果你使用過其他語言,那麼看上去是非常的熟悉吧。但比一些c要簡單的多吧
1、不需要導入一些單獨的庫,比如輸入/輸出或字元串處理功能的類庫,
2、不需要在全局範圍內編寫的代碼用於作為入口點程式,所以你不需要 main()函數,
3、不需要寫在每個語句的末尾的分號。這樣寫是不是很簡單~
簡單值
使用let來聲明一個常量,var聲明一個變數。一個常量值在編譯時無須知道,但你只能賦值一次,我們需要在聲明時賦值,如果多次賦值會發生編譯錯誤,如下圖
一個變數值可以在聲明時賦值,也可以在以後賦值。
常量或者變數的類型必須和賦給它們的值一樣。然而,聲明時類型是可選的,聲明同時賦值的話,編譯器會自動推斷類型。在上面的例子中,編譯器推斷出var1是一個整數(integer)因為它的初始值是整數。
如果初始值沒有提供足夠的信息(或者沒有初始值),那你需要在變數後面聲明類型,用冒號分割。 數值不會被隱式轉換為其他類型,必須顯式轉換,例如轉換為字元型 若不顯式轉換會發生編譯錯誤,如下圖 最簡單的轉換為把值寫到括弧中,並且在括弧之前寫一個\ 常量和變數的命名規則 1.你可以用任何你喜歡的字元作為常量和變數名,包括 Unicode 字元: 即使你使用中文常量名也是毫無問題的 2.常量與變數名不能包含k數學符號,箭頭,保留的(或者非法的)Unicode 碼位,連線與製表符 3.不能以數字開頭 4.一旦你將常量或者變數聲明為確定的類型,你就不能使用相同的名字再次進行聲明,或者改變其存儲的值的類型。同時,你也不能將常量與變數進行互轉。 5.避免使用關鍵字作為常量或變數名 數組和字典 使用[]來創建數組和字典,通過數組索引或字典的鍵(key)來訪問元素。元素之間使用逗號分隔。var shoppingList = ["catfish", "water", "tulips", "blue paint"]
shoppingList[1] = "bottle of water"
var occupations = [
"Malcolm": "Captain",
"Kaylee": "Mechanic",
]
occupations["Jayne"] = "Public Relations”
我們看一下結果
OK!和我們預期的一樣。
下麵我們創建一個空的數組和字典
let emptyArray = [String]()//創建一個元素為字元類型的數組
let emptyDict = [String:float]()//創建一個key為字元類型,值為浮點類型的字典
如果類型可以被推斷出來,你可以使用[]和[:]來創建空的數組和字典。
控制流
使用if和switch執行條件操作,使用for-in ,for,while,repeat-while執行迴圈操作。條件或迴圈變數的圓括弧是可選的,但是語句體的大括弧({})是必須的.
let individualScores = [75, 43, 103, 87, 12]
var teamScore = 0
for score in individualScores {
if score > 50 {
teamScore += 3
} else {
teamScore += 1
}
}
print(teamScore)//輸出11
在if語句中條件必須是一個布爾(Boolean)表達式。在這裡我們明晰可以看出swift語法的簡潔。
var optionalString: String? = "Hello"
print(optionalString == nil)
var optionalName: String? = "John Appleseed"
var greeting = "Hello!"
if let name = optionalName {
greeting = "Hello, \(name)"
}
輸出結果:
false。
Hello, John Appleseed
因為optionalString和optionalName都是有具體的值,但如果optionalName=nil的話,那麼greeting輸出結果為Hello!
var optionalName: String? = "John Appleseed" var greeting = "Hello!" if let name = optionalName { greeting = "Hello, \(name)" } else{ greeting = "Hello,匿名" }
輸出結果
false
Hello,匿名
switch支持任意類型的數據和各種比較操作,它不局限於整數和相等的測試
let vegetable = "red pepper"
switch vegetable {
case "celery":
print("Add some raisins and make ants on a log.")
case "cucumber", "watercress":
print("That would make a good tea sandwich.")
case let x where x.hasSuffix("pepper"):
print("Is it a spicy \(x)?")
default:
print("Everything tastes good in soup.")
}
輸出結果為
Is it a spicy red pepper?