【Swift學習】Swift編程之旅(一),swift學習編程之旅
學習一門新語言最經典的例子就是輸出“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 = 0for 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?