當前位置:
首頁 > 最新 > Kotlin基本語法

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的過程中所遇到的問題。


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 軟體工程實驗班11401 的精彩文章:

TAG:軟體工程實驗班11401 |