當我第一次看到這兩個詞的反應,第一件事就是Google,
我們很幸運的活在一個資訊發達,任何問題基本上Google都可以迎刃而解,
舉凡從程式語言的問題、生理病痛、各種疑難雜症,基本上都難不倒Google大神。
在看到字面上的意思的時候,會覺得常數跟變數是數學領域的一部分,自然適用於數字相關的東西。
但事實上在Swift的世界當中,不僅僅只適用於與數字有關的Int、Double、Float...
舉凡只要是在宣告任何一個型別之前Character、String、Bool、Array、Dictionary、Set等等
沒看過這些型別?沒關係,接下來也會一一介紹到,不用擔心
都必須要先定義這個型別本身是常數還是變數。
因此在我所瞭解的常數與變數的定義很簡單,就是↓↓↓↓↓↓↓↓↓
let characterLet:Character = "A"
let stringLet:String = "Test"
let numberIntLet:Int = 1
let numberDoubleLet:Double = 1.0
let numberFloatLet:Float = 1.0
let trueOrFalseLet:Bool = true
當你嘗試修改宣告為常數的型別時,系統就會跳出警告告知這個型別為常數,是否要改變為變數?
var characterVar:Character = "A"
var stringVar:String = "Test"
var numberIntVar:Int = 1
var numberDoubleVar:Double = 1.0
var numberFloatVar:Float = 1.0
var trueOrFalseVar:Bool = true
如果將型別宣告為變數,則可以隨時改變其值的內容。
因此在往後的開發APP中,在創建一個物件或者是型別的時候,要去考慮的是之後的值會不會變動?
假設這個值明明都沒被變動過,卻宣告為變數,此時你就會看到系統跳出黃色的驚嘆號提醒,
這個值都沒有任何的改變,是否要改為常數?(如下圖警訊)
為了不要勞煩細心系統一直不厭其煩的提醒,在未確定是否會改變其值之前,建議還是先養成設為常數的好習慣。
不過也是要注意有些值,知道未來有可能會被改變,預設為變數才不會讓程式報錯。
像這種型別Int設為HP跟MP的參數時,很明顯的就可以看得出來,未來隨時會改變,這種時候請毫不猶豫地設為變數。
但像是人物名稱,怪物名稱這種基本上是不可變的值,也請毫不猶豫地給他一個let(常數)吧!
不過俗話說的好,人算不如天算、凡事有例外。
在我學習的過程中,我也遇過例外的狀況,明明常數是不可變的值,為什麼碰上了Reference Type就可以改變其值?
而相同的情況,碰上Value Type卻會出現型別為常數,無法指派值給numbers?
我們可以在接下來的日子一起探討這個神奇的Swift帶來的各種有趣的現象,一起探索這個廣大的世界。
在此篇,其實對於沒有看過或不瞭解的東西,就先放到一邊沒關係,最重要的是知道什麼是常數,什麼是變數即足矣!
凡事量力而為,不愧對自己為原則,不用想著一步登天,隨著自己的學習步伐前進,學習是一條漫無止盡的路,欲速則不達,路遙知馬力、日久見Swift心。
共勉之!