最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Kotlin基礎(chǔ)教程之數(shù)據(jù)類型

 更新時間:2017年05月27日 11:18:08   作者:天命劍主  
這篇文章主要介紹了Kotlin基礎(chǔ)教程之數(shù)據(jù)類型的相關(guān)資料,需要的朋友可以參考下

Kotlin基礎(chǔ)教程之數(shù)據(jù)類型

一切都是對象.

在Kotlin中一切都是對象.Kotlin有一些基本類型Boolean,Byte,Shot,Int,Long,Float,Double

在Kotlin中沒有原始類型,以上這些類型都是對象,比如


運行結(jié)果如下


Kotlin支持16進制字面值,二進制字面值和科學記數(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)在初學Kotlin還并不清楚用途.Kotlin畢竟太新,能找到的教程幾乎只有一本英文的官方文檔.(如果我能學完的話那么我的這些blog或許也能成為教程.)

我們還看到了一些有趣的東西,比如在字符串中使用${}進行替換,字符串中的代碼會被執(zhí)行,最后的結(jié)果被插入到字符串中,這一點簡直和Unix Shell腳本里面的替換語法如出一轍,想來Kotlin也是受到了很多語言的啟發(fā).

這段代碼運行結(jié)果如下

關(guān)于數(shù)組的初始化,也很有趣,如下:


前面已經(jīng)說過了arrayOf()函數(shù)可以創(chuàng)建一個數(shù)組,Kotlin自動判斷類型,比如x就是Array<String>類型,那么y是什么類型呢?

y最后會變成Array<Comparable<out Any?>>類型,Comparable是一個表示"可比較"含義的接口,Any代表任何類型,問號代表可以為null,雖然暫時看不懂,不過這并不影響.

除了arrayOf函數(shù),還有intArrayOf,longArrayOf,doubleArrayOf等等函數(shù)

除此之外,Array有自己的構(gòu)造函數(shù),第一個參數(shù)是數(shù)組元素個數(shù),第二個參數(shù)是一個lambda表達式或者說一個函數(shù)或者說一個迭代器(某種意義上可以看作一樣東西),在Kotlin中一定程度上實現(xiàn)了統(tǒng)一.

lambda或者說迭代器在Kotlin中使用非常普遍,相信大家已經(jīng)深有體會 :-) 經(jīng)常看到默認的那個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的基本語法特性是在太多了(當然也是考慮到在控制流之前應該先了解操作符,畢竟Kotlin可是支持操作符重載的(笑)).

另外:在Kotlin中Unit類型相當于Java中的void,Unit有時也可以省略.

感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!

相關(guān)文章

  • 詳解springboot中junit回滾

    詳解springboot中junit回滾

    本篇文章主要介紹了springboot中junit回滾,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-10-10
  • 基于JavaSwing+mysql開發(fā)一個學生社團管理系統(tǒng)設(shè)計和實現(xiàn)

    基于JavaSwing+mysql開發(fā)一個學生社團管理系統(tǒng)設(shè)計和實現(xiàn)

    項目使用Java swing+mysql開發(fā),可實現(xiàn)基礎(chǔ)數(shù)據(jù)維護、用戶登錄注冊、社團信息列表查看、社團信息添加、社團信息修改、社團信息刪除以及退出注銷等功能、界面設(shè)計比較簡單易學、適合作為Java課設(shè)設(shè)計以及學習技術(shù)使用,需要的朋友參考下吧
    2021-08-08
  • Java設(shè)計模式之外觀模式的實現(xiàn)方式

    Java設(shè)計模式之外觀模式的實現(xiàn)方式

    這篇文章主要介紹了Java設(shè)計模式之外觀模式的實現(xiàn)方式,外觀模式隱藏系統(tǒng)的復雜性,并向客戶端提供了一個客戶端可以訪問系統(tǒng)的接口,這種類型的設(shè)計模式屬于結(jié)構(gòu)型模式,它向現(xiàn)有的系統(tǒng)添加一個接口,來隱藏系統(tǒng)的復雜性,需要的朋友可以參考下
    2023-11-11
  • selenium操作隱藏的元素(python+Java)

    selenium操作隱藏的元素(python+Java)

    這篇文章主要介紹了selenium操作隱藏的元素(python+Java),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-07-07
  • Java實現(xiàn)數(shù)組翻轉(zhuǎn)的實現(xiàn)代碼

    Java實現(xiàn)數(shù)組翻轉(zhuǎn)的實現(xiàn)代碼

    這篇文章主要介紹了Java實現(xiàn)數(shù)組翻轉(zhuǎn)的實現(xiàn)代碼,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-09-09
  • Java實現(xiàn)簡易界面通訊錄

    Java實現(xiàn)簡易界面通訊錄

    這篇文章主要為大家詳細介紹了Java實現(xiàn)簡易界面通訊錄,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-04-04
  • SpringBoot項目Docker部署三種方式

    SpringBoot項目Docker部署三種方式

    本文主要介紹了SpringBoot項目Docker部署三種方式,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2024-08-08
  • Spring?Security權(quán)限注解啟動及邏輯處理使用示例

    Spring?Security權(quán)限注解啟動及邏輯處理使用示例

    這篇文章主要為大家介紹了Spring?Security權(quán)限注解啟動及邏輯處理使用示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-07-07
  • 基于spring boot實現(xiàn)一個全局異常處理器

    基于spring boot實現(xiàn)一個全局異常處理器

    在項目開發(fā)中,我們可以基于spring boot提供的切面特性,來很輕松的實現(xiàn)全局異常的處理,所以本文主要為大家介紹了如何基于spring boot實現(xiàn)一個全局異常處理器,有需要的可以參考下
    2023-09-09
  • Springboot?yml?Map?List讀取方式

    Springboot?yml?Map?List讀取方式

    這篇文章主要介紹了Springboot?yml?Map?List讀取方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-02-02

最新評論

阿拉尔市| 昭苏县| 内乡县| 饶阳县| 大余县| 饶平县| 中西区| 临安市| 永新县| 佳木斯市| 阜宁县| 连云港市| 孙吴县| 启东市| 涿鹿县| 武威市| 清镇市| 寻乌县| 德兴市| 江阴市| 定西市| 新泰市| 侯马市| 巴楚县| 吉安市| 临洮县| 平乐县| 陵川县| 邵东县| 彭水| 潢川县| 成安县| 资兴市| 冀州市| 成武县| 阿图什市| 余干县| 马尔康县| 太原市| 广丰县| 兴文县|