首先從基本類型開始:
與java相比像integer吊洼,float或者boolean等類型仍然存在,但是它們?nèi)慷紩鳛閷ο?br>
存在的肮韧,既然是對象融蹂,從命名就可以知道,以后使用首字母都會變成大寫的弄企,這個你待會會看到超燃。在這里與java不同的還有所有的數(shù)字類型,都不會自動轉型拘领,必須要做一個明確的類型轉換
val i:Int=7
val d: Double = i.toDouble()
val c: Char='c'
val i: Int = c.toInt()
val s: String = "Hello Word"
val s1 = "Hello Kotlin"
var c1:Char = s1[1]
從上面的代碼片段可以看到意乓,定義一個變量的方式與之前也不一樣了
val /var 分別代表了不可變量,變量(val與java 中的final 非常相似)
格式也變成了 (變量名稱:類型 = 值) 這是標準的寫法约素,
也可以(變量名稱:值) 如: val s = "abc" 這里編譯時會對變量s做一個類型的預測届良,也就是說系統(tǒng)會自動幫我們指定一個它認為匹配的類型。
在kotlin中String 類型可以直接被當做一個字符數(shù)組來訪問圣猎,遍歷(這里不演示了自測吧)
String 還有字符串模板
字符串可能包含模板表達式士葫,即被評估的代碼片段,其結果連接到字符串中送悔。
模板表達式以美元符號($)開頭慢显,由簡單名稱組成:
val i = 10val s = "i = $i" // evaluates to "i = 10"
或大括號中的任意表達式:
val s = "abc"val str = "$s.length is ${s.length}" // evaluates to "abc.length is 3"
關于不可變在Kotlin(和其它很多現(xiàn)代語言)中是一個很重要的概念。
一個不可變對象意味著它在實例化之后就不能再去改變它的狀態(tài)了欠啤。如
果你需要一個這個對象修改之后的版本荚藻,那就會再創(chuàng)建一個新的對象。
這個讓編程更加具有健壯性和預估性洁段。在Java中应狱,大部分的對象是可變
的,那就意味著任何可以訪問它這個對象的代碼都可以去修改它祠丝,從而
影響整個程序的其它地方疾呻。不可變對象也可以說是線程安全的除嘹,因為它
們無法去改變,也不需要去定義訪問控制罐韩,因為所有線程訪問到的對象
都是同一個憾赁。所以在Kotlin中,如果我們想使用不可變性散吵,我們編碼時
思考的方式需要有一些改變。一個重要的概念是:盡可能地使用 val 蟆肆。
位運算符:
位運算也有一點不同矾睦。在Android中,我們經(jīng)常使用‘&’炎功,‘|’ 在這里被分別 and枚冗,or 代替:
// Java
int bitwiseOr = FLAG1 | FLAG2;
int bitwiseAnd = FLAG1 & FLAG2;
// Kotlin
val bitwiseOr = FLAG1 or FLAG2
val bitwiseAnd = FLAG1 and FLAG2
其他類型基本沒什么變化!
接下來是屬性蛇损,我們可以在代碼中創(chuàng)建一個類
接下來你會得到一個類嘗試編寫一個屬性赁温,并調用
在你創(chuàng)建的類中添加下行代碼():
val name : String = "test name"
可以試著在我們的MianActivity 中調用,順便使用一下字符串模板:
/*----- 屬性的調用 ----*/
val name = Person().name
Toast.makeText(this,"$name.length is ${name.length}",Toast.LENGTH_SHORT).show()
從上面的代碼我們通過Person().name 得到了Person 類中name的值淤齐,并創(chuàng)建了一個字符串來接收(如果沒有任何指定股囊,屬性會默認使用getter和setter簿透,所以不要疑惑跟java的public屬性區(qū)別)
攻锰,最后通過Toast 將字符串以模板的方式輸出鳖谈±浦粒看結果
有圖有真相喘先,屬性調用成功平绩,而且使用模板爽了一把Y炻怠唤蔗!
下一篇:類义锥,函數(shù)的使用