Kotlin基礎(chǔ)教程之數(shù)據(jù)類型
成都創(chuàng)新互聯(lián)公司是一家專業(yè)提供柯橋企業(yè)網(wǎng)站建設(shè),專注與成都網(wǎng)站設(shè)計、成都網(wǎng)站制作、成都h5網(wǎng)站建設(shè)、小程序制作等業(yè)務(wù)。10年已為柯橋眾多企業(yè)、政府機構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)網(wǎng)站設(shè)計公司優(yōu)惠進行中。一切都是對象.
在Kotlin中一切都是對象.Kotlin有一些基本類型Boolean,Byte,Shot,Int,Long,Float,Double
在Kotlin中沒有原始類型,以上這些類型都是對象,比如
運行結(jié)果如下
Kotlin支持16進制字面值,二進制字面值和科學(xué)記數(shù)法,官方文檔中沒有提到8進制
所有基本的幾個數(shù)據(jù)類型不會進行顯式類型轉(zhuǎn)換,這一點尤為重要!那么如何進行轉(zhuǎn)換呢?如下:
可以使用toLong,toInt,toShort,toChar等函數(shù)進行轉(zhuǎn)換,不僅如此,數(shù)組Array<>也是對象,不但可以通過asList函數(shù)轉(zhuǎn)換為List對象,數(shù)組類甚至包含了一個用于計算平均值的average函數(shù).實際上Kotlin數(shù)組真的很像Collection(雖然Array并沒有實現(xiàn)Collection接口).數(shù)組類還有其他很多函數(shù),現(xiàn)在初學(xué)Kotlin還并不清楚用途.Kotlin畢竟太新,能找到的教程幾乎只有一本英文的官方文檔.(如果我能學(xué)完的話那么我的這些blog或許也能成為教程.)
我們還看到了一些有趣的東西,比如在字符串中使用${}進行替換,字符串中的代碼會被執(zhí)行,最后的結(jié)果被插入到字符串中,這一點簡直和Unix Shell腳本里面的替換語法如出一轍,想來Kotlin也是受到了很多語言的啟發(fā).
這段代碼運行結(jié)果如下
關(guān)于數(shù)組的初始化,也很有趣,如下:
前面已經(jīng)說過了arrayOf()函數(shù)可以創(chuàng)建一個數(shù)組,Kotlin自動判斷類型,比如x就是Array
y最后會變成Array
除了arrayOf函數(shù),還有intArrayOf,longArrayOf,doubleArrayOf等等函數(shù)
除此之外,Array有自己的構(gòu)造函數(shù),第一個參數(shù)是數(shù)組元素個數(shù),第二個參數(shù)是一個lambda表達式或者說一個函數(shù)或者說一個迭代器(某種意義上可以看作一樣?xùn)|西),在Kotlin中一定程度上實現(xiàn)了統(tǒng)一.
lambda或者說迭代器在Kotlin中使用非常普遍,相信大家已經(jīng)深有體會 :-) 經(jīng)??吹侥J的那個it(笑)
運行結(jié)果不出所料,如下
iterator從0開始哦!
i.plus(i) 等同于i+i,plus就是加法函數(shù).Kotlin就是通過將操作符與函數(shù)進行綁定實現(xiàn)了操作符重載的功能(這個以后再看)
除了基本類型,數(shù)組類型,還有其他的類之外,Kotlin還有很多有趣的類型(當然他們都是對象),比如Range就是Kotlin中的一種極其有趣的類型,如下:
Range,顧名思義,就是一個范圍,這個函數(shù)第一句代碼定義x為IntRange類型(當然也存在DoubleRange,LongRange等),
根據(jù)1.rangeTo(5)我們可以猜測x就代表1到5這樣一個范圍,那么這樣的范圍有什么用呢?
很明顯可以用在循環(huán)中(不是所有的Range都可以用在循環(huán)中,要想在循環(huán)中使用Range,必須實現(xiàn)iterator)
從for(a:Int in x) print("$a\t")一句我們可以看出,Range實際上可以用來限制循環(huán)控制變量的范圍
這段代碼輸出如下
當然對于Kotlin這樣追求簡潔到極致的語言,使用val x:IntRange = 1.rangeTo(5)實在是太麻煩了,
你可以直接使用var y = 1..5 達到相同的效果,不僅如此,在for循環(huán)中a:Int 也可以簡化為a
編譯器可以自動判斷數(shù)據(jù)類型,其實在前面的代碼中所有的數(shù)據(jù)類型聲明都可以省略,就像這樣
大多數(shù)變量的類型,編譯器會自動判斷,我之所以把類型寫出來是為了讓諸位更容易看清楚代碼.
如果你仔細發(fā)現(xiàn)的話,在Kotlin中還有很多簡化代碼的方法,盡量少敲鍵盤是這個語言很大的特點.
另外,這是我們第一次看到控制流(for循環(huán)),控制流的東西我打算留到后面,畢竟Kotlin的基本語法特性是在太多了(當然也是考慮到在控制流之前應(yīng)該先了解操作符,畢竟Kotlin可是支持操作符重載的(笑)).
另外:在Kotlin中Unit類型相當于Java中的void,Unit有時也可以省略.