swift在類別上是蠻強硬的語言
來看看型別上的使用吧
// 整數
let intA = 10 // 自動判斷型別
let int_b: Int // 可先不給預設值, 但必須先給型別
let int_c: Int = 10 // 也可以宣告完值接給值
// let int_d //執行這行會出錯 因為未定義型別下 必須給初始值
// 字串
let string_a = "10" // 自動判斷型別
let string_b: String // 可先不給預設值, 但必須先給型別
let string_c: String = "10" // 也可以宣告完值接給值
// let string_d //執行這行會出錯 因為未定義型別下 必須給初始值
// 浮點數
let xfloat_a = 1.0 // 如果沒有寫型別, 浮點數都會判斷成 Double , 這裡不會是Float
let float_b: Float // 可先不給預設值, 但必須先給型別
let float_c: Float = 1.0 // 也可以宣告完值接給值
let double_a = 1.99 // 如果沒有寫型別, 浮點數都會判斷成 Double
let double_b: Double // 可先不給預設值, 但必須先給型別
let double_c: Double = 1.99 // 也可以宣告完值接給值
//布林
let bool_a=true // 自動判斷型別
let bool_b=false // 自動判斷型別
let bool_c:Bool // 可先不給預設值, 但必須先給型別
let bool_d:Bool=true // 也可以宣告完值接給值
//陣列
let emptyArray = [String]()
var array1 = ["test"]
// 錯誤使用範例
// print(int_b) //執行此行 直接列印未初始化的常數 會噴錯
int_b = 11 // 給值
print(int_b) //給值後列印會正確
//int_b = 22 //執行此行 會噴錯 let是常數 給值後無法修改
-------- 控制台輸出 ------------
11
基本的型別宣告與使用
比較需要注意的是 未給初始化值就拿來用的狀況
這邊會直接編譯錯誤 這種做法我蠻喜歡的
過去寫程式有時會踩到
未給預設值 系統自動幫你補上時
那個值不是我們要的 這種雷
fun main() {
// 整數
val intA = 10
val int_b: Int
val int_c: Int = 10
// let int_d //執行這行會出錯 因為未定義型別下 必須給初始值
// 字串
val string_a = "10"
val string_b: String
val string_c: String = "10"
// let string_d //執行這行會出錯 因為未定義型別下 必須給初始值
// 浮點數
val float_a = 1.0f
val float_b: Float
val float_c: Float = 1.0F //1.0 //需加上 F 否則將認定為 Double 型態
val double_a = 1.99
val double_b: Double
val double_c: Double = 1.99
//布林
val bool_a=true
val bool_b=false
val bool_c:Boolean
val bool_d:Boolean=true
//陣列
val emptyArray = emptyArray<String>()
val array1 = arrayOf("test")
// 錯誤使用範例
// print(int_b) //執行此行 直接列印未初始化的常數 會噴錯
int_b = 11
println(int_b) //給值後列印會正確
//int_b = 22 //執行此行 會噴錯 let是常數 給值後無法修改
}
-------- Console ------------
11
基本型別上大致相同
但kotlin浮點數給予需要加上f
而在語法上有略微不同而已
尤其是陣列操作上看起來比較複雜
詳細的陣列操作等等, 等後面實作有需要時再來說明
想到自己剛學程式的時候
老師在台上說...
數字不只是數字,1 不等於1.0 更不等於 "1.00"
聽的我一臉懵逼 看他在台上裝逼
等到了現在想一想....
這招拿來唬人還真D猛
看似哲學又像玄學 別人聽了好想學
真的教了你 馬上就想退學!
(๑¯∀¯๑) (☍﹏⁰)