Swift基礎語法簡介(一)——你的第一行Swift程式碼
學習一門新的語言,首先應該從該門語言的基礎語法入手,掌握基本語法的使用規則,先保證能寫簡單的邏輯,能閱讀簡單的程式碼。之後,通過完成幾個簡單的需求,實際寫程式碼感受並強化一下相關語法。並且,在具體寫程式碼的過程中強化語法的一些細節以及相關的原理性的知識。本系列文章會盡量避免事無鉅細的介紹各種語法或知識,而是以讓大家更快地上手Swift為目標。至於其中用的比較少的細節,會放在最後介紹或者不介紹。我相信如果對Swift整體有了認識,具體的用的比較少的細節,等真用到了也能找到足夠多的相關資料。
Swift是一門型別安全的語言。Swift幫助你明確程式碼可以操作的型別。如果你的變數預期得到一個String,型別會安全地組織以免你不小心傳入Int。在開發過程中,這個限制能幫助你在開發過程中更早地發現並修復錯誤。當然,Swift的安全特性不止體現於此。
1、宣告常量和變數
常量顧名思義一旦設定好值便不能再被更改。變數可以在任何時候被設定為不同的值。
使用關鍵字let來宣告常量,使用關鍵字var來宣告變數。(ps:是不是看到了js或python的影子)
let maxNumber = 10
var currentNumber = 0
這段程式碼讀作:宣告一個叫做maxNumber的常量,並賦值為10,宣告一個叫做currentNumber的變數,並設定初始值0。
ps: Swift 並不要求在每一句程式碼結尾寫分號
2、型別標註
你可以通過新增型別標註為每個變數或常量標明能夠儲存值的型別。新增型別標註的方法是在變數或者常量的名字後加一個冒號,再跟一個空格,最後加上要使用的型別的名稱。
例如:
var welcomeMessage: String
宣告一個叫做welcomeMessage的變數,它的型別是String。
var red, green, blue: Double
宣告red, green, blue三個變數,三個變數的型別均為Double。
常量或者變數必須擁有和你賦給它們的值相同的型別。不過,你並不需要總是顯示地寫出型別。在宣告一個常量或者變數的時候直接給它們賦值就可以讓編譯器推斷它們的型別。比如varmyVariable =42 編譯器就會推斷myVariable是一個整型,因為它的初始值是一個整型。
3、輸出常量和變數
var welcomeMessage: String = "helloworld!"
print(welcomeMessage)
print("The current value ofwelcomeMessage is \(welcomeMessage)")
結果為:
hello world!
The current value of welcomeMessage ishello world!
Swift使用字串插值的方式來把常量名或者變數名當做佔位符加入到更長的字串中,然後讓Swift用常量或變數的當前值替換這些佔位符。
let apples= 3
let appleSummary= "I
have \(apples)apples."
在宣告String變數時也可以採用同樣的方式
4、基本資料型別
Swift為所有C和Objective-C的型別提供了自己的版本,包括整型值的Int,浮點數的Double和Float,布林量值的Bool,字串的String,陣列Array,Set和字典Dictionary
Swift版本的基本資料型別包括Int、UInt、Float、Double等
let meaningOfLife = 42 被推斷為Int
let pi = 3.14159 被推斷為Double
5、String
var welcomeMessage: String = "hello world!" //定義String
常用API
isEmpty 判斷String是否為空
count 返回String長度
append 在String末尾新增字元
uppercased / lowercased 將String變為大/小寫
hasPrefix /hasSuffix 是否有相應的前/字尾
contains 是否包含相應的字元
OC中用 NSMutableString和NSString分別表示可變字串和不可變字串。Swift與此不同,在定義String時,var代表可變,let代表不可變。(Array與Dictionary也是如此)
6、Array
var shoppingList =["catfish","water","tulips","blue paint"] //初始化Array
shoppingList[1]= "bottleof water" //修改Array中某一項的值
var emptyArray =[String]() //初始化空Array
letoddNumbers = [1, 3, 5, 7, 9, 11, 13, 15] //An array of 'Int' elements
與OC不同,Array中的元素可以是基本資料型別(Dictionary也是如此)。
常用API
isEmpty 判斷陣列是否為空
count 返回陣列長度
first 返回首個元素(如果陣列為空,返回nil)
last 返回最後一個元素(如果陣列為空,返回nil)
append 在陣列末尾新增一個元素
insert 在固定下標位置插入某一元素
remove 移除某一元素
7、Dictionary
var occupations= [
"Malcolm":"Captain",
"Kaylee":"Mechanic",
] // 初始化字典
occupations["Jayne"]= "PublicRelations" // 修改字典中某項值
let emptyDictionary= [String:Float]() // 初始化空字典
常用API
isEmpty 判斷字典是否為空
count 返回字典長度
keys 返回字典所有的key
values 返回字典所有的value