Kotlin基本語法
一、常用類型
基本類型
val 用來定義常量;var 用來定義變數;
常量和變數在使用之前都要進行初始化。
vala =10
varb =20
b =30
valc: Int
c=10
類型轉換
對與Kotlin中的基本數據類型:Int Double FLoat Boolean 等類型是無法直接進行類型轉換的(使用as關鍵字)。而需要使用這些類型的toXXX方法。
而且這些個「基本類型」也不會進行隱式的轉換(顯式都不行)
vartypeA: Int =10_000_000
vartypeB: Float =10.0f
typeA=typeB.toInt()
值比較
「===」比較的是兩個變數的地址;「==」比較的則是equals方法。在下方的代碼中只會輸出一個「equals」。
valeqA = EqualsTest(10)
valeqB = EqualsTest(10)
if(eqA === eqB) {
println("address equals")
}
if(eqA == eqB) {
println("equals")
}
字元串
字元串模版
valstrA ="this is a typeA"+ typeA
valstrB ="this is a${typeA} ${eqA.a} ${1+2+4}"
在Kotlin中有兩種連接字元串和其它變數的方式,第一種是傳統的通過進行連接。另一種方式則被稱作字元串模版。
我們可以直接在某個字元串字面量的內部,使用${ }符號,將某個表達式插入其中。
多行字元串
往常,我們寫多行字元串的時候,往往需要手動的添加換行符,甚至為了增強可讀性,將每一行的字元串都單獨放在一行上,然後在通過加號聯繫到一起。
而在Kotlin中則提供了一種更加便捷的方式:
valstrC ="""
this is a multi
line string
""".trimMargin()
在每一行的字元串首部是一個「|」符號,它的作用是配合後面的trimMargin函數將每一行字元串首部的空格去除掉,時輸出的多行字元串更加的美觀、整潔。
數組
在Kotlin中數組依舊不是一個像Java、C中的那種基本類型,也是一個類。
數組的兩種創建方式:
valarrayA = Array(10){
i: Int->
return@Arrayi +1
}
valarrayB =arrayOf(10,30,20,30)
Kotlin中的數組一旦初始化完成之後,就沒有辦法再擴充數組的容量。
數組元素的訪問方式和傳統的數組一樣,通過下標進行訪問。例如arrayA[0]
集合類
在Kotlin中,總體來說,有兩大類別的集合類。一種是和前面的數組一樣,一旦初始化後就不能重新擴容的集合;另一種則沒有這種限制。
//普通集合類
vallistA =listOf(10,230,20)
//可擴容的集合類 "MutableXXXX"
vallistB =mutableListOf(10,103)
下方的listB便可以調用其add方法往該集合中添加新的元素。
然後,在稍微提下HashMap。它存儲的是一個個鍵值對,在Kotlin中這些鍵值對都是一個個Pair對象。而這裡有一種更加簡單、直觀的方式生成Pair對象:xxx to xxx
valmapA =hashMapOf(1to"one",2to"two")
數組和集合類的遍歷主要有兩種方式:
mapA.forEach{t, u->
println("$t:$u")
}
listA.forEach{i: Int->
println(i)
}
二、流程式控制制語句
if else 語句
Kotlin中的if else語句沒啥新的內容,和傳統的寫法一樣:
if ( ) {
} else if ( ) {
} else ( ) {
}
for語句
Kotlin中的for語句只有一種形式,對應著Java中的「foreach」寫法
for(i in 1..10){
}
其中接在「in」關鍵字後面的,可以是一個範圍表達式,或者是一個實現了Iterable介面的類。
while語句
寫法也和傳統的寫法一樣。
while(){
}
當想要跳出多重循環的時候,可以在希望跳出的那層循環添加一個標籤「名字@」,然後使用「break@名字」即可跳出那一層循環。
label@while(true){
while(true){
while(true){
break@label
}
}
}
三、表達式
if else 表達式
在Kotlin中是沒有三元表達式這種語法的,需要使用 if else 表達式進行替代。
valeB=true
valeA=if(eB)10else20
當你要把 if 語句當作表達式來使用時,一定要加上 else 。因為表達式是必須得返回一個值的,對於這一類分支語句,就需要考慮到所有的可能情況。
when 表達式
前面講流程式控制制語句的時候,沒有提到switch語句,這是因為Kotlin中壓根就沒有這麼一個語句。而是使用when語句來進行替代
when(eA){
10->{
}
20->{
}
}
當when作為表達式使用時,也同樣需要加上 else;
valwA=when(eA){
10->{
}
20->{
}
else->{
}
}
when語句還有一種更加特殊的用法,去掉when後面的小括弧中的內容:
valwB=when{
eAin1..20-> {
}
eAin21..30->{
}
else->{
}
}
valbasic:Basic=BasicA()
valwC =when{
basicisBasicA->{
}
basicisBasicB->{
}
else->{
}
}
此時 「->」前面填寫的是一個布爾表達式,可以進行更加豐富的判斷,相當於if else表達式的一種更加簡便的寫法。
範圍表達式
通過範圍表達式能夠生成某個範圍的值,並可以對這個區間中的值進行遍歷。
包含首尾
for(iin"a".."z"){
}
不包含尾數
for(iin1until10){
}
倒序區間,包含首尾
for(iin10downTo1){
}
設置跨步
for(iin(10downTo1).step(2)){
}
好的,這篇文章的內容大致就是這些,下篇文章將會講解Kotlin中的面向對象編程的部分。喜歡的話,可以加入下方的知識星球,向咱詢問在學習Kotlin的過程中所遇到的問題。
TAG:軟體工程實驗班11401 |