最近某君在學習iOS編程,
由於還是初學者,
有些東西還沒有整理得很清楚,
但鑒於對自身記憶力的不信任,
還是在這裡記錄一下先。
所以內容以筆記為主、教學為輔(現在也教不出個什麼所以然來)
如果有需要可以先參考看看,
(更適合那些有編程基礎,作為對照手冊使用)
我在事後應該也會努力完善的(吧⋯⋯)
---
如果有編程底的話,
應該對基本資料類型不會陌生,
由於某君學過多門語言(VB、PASCAL、C、JAVA、PYTHON等),
又學而不精,
所以有一些名詞可能會不小心混用了,
更無法一一列舉Swift與其他語言的異同,
還望見諒。
Swift區分大小寫,
一樣有字串、整數、浮點數、Double、邏輯等幾種類型,
沒有硬性規定事先宣告,
以第一次賦值的值的類型作為變數(/常數)的類型。
但需要事先說明其為變數(Variable,var)還是常數(Constant,let)。
Print()
為了方便理解下面的程式,
順便介紹一下print()這個方法。
print("要印的文字") /變數 /常數 等
如果要印出一句文字和變數結合的句字也很方便,
只需在變數前用\作分隔就可以了,例如:
print("第一句是\(x),第二句是\(x1),第三句是\(x2)")
這點和python很像啊,如果有會python的人可以比較一下:
print("第一句是{},第二句是{},第三句是{}".format(x,x1,x2))
字串String (String)
程式碼 | 解釋 | |
宣告 | var str:String | 宣告了一個名為str的字串變數。 |
宣告+賦值 | let str = "Hello, playground" |
宣告了一個名為str的字串常數,並賦值為Hello, playground,其值無法再變更*。 |
宣告+賦值 | var str = "" |
宣告了一個名為str的字串變數,並賦其初始值為空字串。 |
宣告為Optional | var str:String? | 宣告了一個名為str的Optional字串變數*。 |
*宣告為常數的其值無法再變更:
感受一下,應該很容易就能理解了
布爾邏輯Boolean (Bool)
程式碼 | 解釋 | |
宣告 | var b:Bool | 宣告了一個名為b的邏輯變數。 |
宣告+賦值 | var b=false |
宣告了一個名為b的邏輯變數,並賦其初始值為false。 |
宣告+賦值 | var b=true |
宣告了一個名為b的邏輯變數,並賦其初始值為true。 |
宣告為Optional | var b:bool? |
宣告了一個名為b的Optional邏輯變數*。 |
邏輯只有true和false兩種結果,和電腦的大邏輯是一模模、一樣樣的,
如果對邏輯不太理解的話,可以參考一下我前篇[邏輯判斷]的部分,
或者多看幾個例子就會懂了。
整數Integer(Int)、浮點數Float (Float)、Double(Double)
三個數值類型就放在一起介紹吧。
Int就是整數啦,
Float和Double就是有小數點的數,其中Float是較短的、Double是較長的 XD,
就是一個是1.5,另一個是3.1415926,醬紫,
具體差多少個位,懶懶的某君不想深究,
想深究的自己查去。
程式碼 | 解釋 | |
宣告 | var x:Int | 宣告了一個名為x的整數變數。 |
宣告+賦值 | let PI = 3.14 | 宣告了一個名為PI的Double常數,並賦值為3.14。 |
宣告+賦值 | var y=0.0 |
宣告了一個名為y的Double變數,並賦值為0.0*。 |
宣告為Optional | var x:Float? | 宣告了一個名為x的Optional浮點數變數*。 |
*0.0按道理來說應該是Float類型,但Swift默認宣告為Double類型,也就是說只要不特別宣告,就不會有Float類型了。
如果不確定變數類型,可以長按Option+點選變數就以得出以下畫面啦。
再來感受一下吧
記得,不同類型的無法做運算哦
如下圖: x:Int x2:Double
Int和Double無法相加,會出錯的,
如果一定要相加,
只可以將其中一個強制轉換成另一個的類型,
才能運算哦。
怎麼可以強制轉換呢?
就是用Double(x), Int(x), Float(x)方法,
將要轉換的變數放在括號中就可以強制轉換成相關類型了。
但既然說是強制,
感覺就是令人不太放心呢,
如果Line 5的x=16被注釋了、就是x沒值的狀態,又會發生什麼事呢?
如果某君有16個1元,要換成1毛的,當然沒問題,
但如果本來就沒有錢,不管變毛、變分,怎麼強制還是變不出錢來的啊。
為了讓人清晰分辨這種沒錢裝有錢的情況,Swift提供了一個空值nil供開發者使用(相當於平時的null),
這個時候就需要提到Optional啦,
上面幾個類型都有宣告成Optional的部分,
那到底怎麼用呢?
陣列(Array)
陣列就是將幾個同類型、有關聯的變數統一宣告,
省下逐一宣告的麻煩。
程式碼 | 解釋 | |
宣告 | var a:[Int] | 宣告了一個名為a的整數變數陣列。 |
宣告+賦值 | let a=["1","2","3"] | 宣告了一個名為a的字串常數陣列,並賦值為"1","2","3"。 |
幾個陣列的方法:
var a=["1","2","3"]
a.insert("k",at:1) //.insert(要加入的值, at: 在第幾位) result: a=["1","k","2","3"]
a.remove(at:0) //.remove(at: 刪除第幾位的值) result: a=["k","2","3"]
a.first //取出第一個值 result: "k"
a.last //取出最後一個值 result: "3"
*Optional ?!
Optional的符號是?
把變數宣告為Optional後,變數在沒有初始值時默認為nil,
需要注意的是Optional也算是一個類型,
所以Optional的Int和普通的Int也不能運算。
所以這時就需要用到強拆包裝(!),也就是?的反向過程。
同樣的,強拆也是有上面的意外滴!
和上述的一樣,如果x是空值的話又會出事,
那Optional的意義在哪呢?
其實Swift提供了一種安全拆開包裝(Line 6~12)的方式:
Line 6: let temp=x 意思是x有值嗎?有的話就賦值給常數temp (這裡因為temp只用一次,不需要再改值,就可以直接宣告為常數了)
換句話說,如果x有值就會傳給temp,同時會做Line 8條件成立的部分,
如果x是nil的話就不會傳給temp,同時會做Line 11條件不成立的部分。
P.s. 其實Optional真的是Swift一個很重要的部分,超級複雜的,
上面只是簡單說一下,如果詳細的,某君還沒完全搞清楚啦⋯⋯
之前在網上發現了一篇超好理解的,可以移步去看看:
留言列表