Kotlin學習(二)—— 基本文法函數變數,字串模板條件運算式,null,類型檢測,for,while,when,區間,集合,kotlinnull

來源:互聯網
上載者:User

Kotlin學習(二)—— 基本文法函數變數,字串模板條件運算式,null,類型檢測,for,while,when,區間,集合,kotlinnull

作者:劉某人程式員

部落格:http://blog.csdn.net/qq_26787115

聲明:未經原作者允許請勿轉載


一.基本文法


Kotlin的很多概念跟JAVA是有類似的,所以我應該不會

像我的JAVA之旅一樣那麼的詳細,但是不用擔心,你會看的很明白的,我也是根據官方的文檔來學習的


我們在IDEA中建立一個項目Kotlin02


1.函數(fun)


我們預設有一個主函數,就是main了


和JAVA一樣,他就是程式的主入口了,當然,我們還有普通的函數

這裡就可以對Kotlin的函數有一個比較清晰的認識了,首先,我們的無參 無返回中有一個Unit,這個就是標誌 
這個函數沒有傳回值,和JAVA中的void是一樣的,而且我們一般是可以省略掉的,並且這裡要注意下的就是他的函數傳值 
是先定義變數,再用冒號去指向類型,如a:Int b:String,並且傳回值也是用冒號去指向的,如:Int


並且我們還可以將運算式作為函數體、傳回值類型⾃動推斷的函數,如:


2.變數(val&var)


變數分三種,局部變數,頂層變數和可變變數

但是就兩個修飾符val 和 var


用val修飾符修飾之後,只能一次賦值後就編程唯讀變數了,在JAVA中可以理解為常量,這裡怎麼理解呢,可以說是JAVA中用final修飾一樣,我們來舉個例子

這裡的意思就是我定義一個Int類型的a,然後輸出a + 2,編譯器會提示錯誤,因為val修飾後無值,不可操作,然後我給他賦值= 3,就可以正確輸出了


這裡還有一點要注意的就是,我們可以 val c: Int這樣定義一個變數,先不賦值,但是如果你不指定值又不定義類型,比如val a,那是錯誤的,編譯器無法得知你需要做什麼操作


我們再來看下可變變數,用法是一樣的,但是注意的事,他是可變的

這裡就可以明白,a輸入2,然後a++,輸出3


還有最後一種頂層變數,頂層變數其實就是JAVA中的全域變數,這個沒什麼可說的

這個就沒什麼好說的了


3.字串模板($)


字串模板也是比較簡單的,就是字元引用,我們來看一段例子


然後run一下,輸出


可以看出,這裡我輸出的時候就引用了變數boy和girl,只需要前面加上$即可,有點類似於JAVA中的逸出字元


當然,還有一些更加進階的用法,比如


這裡我們可以看到輸出


也就是說,我們可以直接操作,當然,本質上這樣轉義跟下面這樣並沒有什麼區別

你覺得哪種方便呢?


4.條件運算式(if else)

if else 一直都是這種寫法,當然,簡單判斷的話,我們還可以這樣去寫


5.可空值及 null 檢測(?)


還記得我們在java中怎麼去寫函數的嘛?比如


這是一段JAVA代碼,我們可以看到,如果我們通過邏輯操作後可以讓y賦值,但是也同樣的,有存在有可能返回null的情況,但是在kotlin中,我們需要特殊處理

這裡注意,如果傳回值有可能為空白的話,需要標記?問號,不然你return null會報錯


6.類型檢測及⾃動類型轉換(is)


類型檢測在JAVA中都是用instanceof來處理,在kotlin中,可以用is,我們看一個例子

在這段代碼中,我說明一下,Any是所有類都有一個共同的父類,類似於Object,但是他的神通沒有Object大


而在這段代碼中,首先,我用is判斷了String,這裡可不僅是判斷,而且還類型轉換了,所以為true的話,就可以輸出a.length了,但是在沒有調用is之前,實際上是沒有length這個方法的


7.for迴圈(for in)

這段代碼中,我們定義了一個list為a,然後通過in去for迴圈,這裡我要說一下,就是字串模板的應用情境。


比如輸出的結果需要換行,那麼print(b + “\n”)你這樣用+號是錯誤的,需要print(“$b \n”),在Kotlin中,in負責for迴圈,即最大次數為list長度


當然,如果你想問,那我想知道下標是多少怎麼辦?

實際上in只是提供迴圈的手段而已,真正要迴圈的東西,還是要自己決定,所以這裡,我就迴圈list的下標a.indices


這樣我就可以拿到下標以及對應的值,也是一樣的,當然,這個輸出我們可以用更官方的寫法來寫的:


一樣,我們可以看到列印


8.while迴圈(while)

while迴圈沒什麼好講的,你按照正常的來就好了


9.when運算式(when)

從這段代碼大家可以看出一些東西來吧,沒錯,實際上Kotlin中的when運算式就是JAVA中的switch語句塊 -> 相當於case


10.區間(range)

我們通過int可以判斷x是否在1-10的區間,當然,區間的用法還是比較多的,比如數列迭代等,這些我們後面會詳細講到


11.集合

集合在我們上面for迴圈的時候就已經出現過

集合的用處很廣泛,我們在後面還會細講,這裡舉一個例子:


我們先看下輸出結果

這個題出的有點粗糙,大家看的懂就行,意思就是我們只有三種水果給到三個喜歡吃的投票員,他會給我相應的分數,最後超過5分就合格,然後我們來分析下這個題目


首先我們定義了一個集合fruit來表示我當前的水果,然後我定義fractions來進行分數的累加,開始迴圈並且判斷誰喜歡吃,給幾分,最後判斷是否大於5,


題目很簡單,但是我們的邏輯也是從這裡開始萌發的


這些大概就是Kotlin的大致介紹了,實際上這門美麗的語言不止是這些內容,當你已經瞭解了這些之後,我們就可以進行下一個環節,正在的開始沒一個知識點的細講了


如果有興趣的話,可以來Github參與一下

Kotlin:

https://github.com/LiuGuiLinAndroid/Kotlin


一命二運三風水,四修陰德五讀書!

劉桂林

號 : Android_LiuGuiLin

新浪微博:@劉某人程式員



著作權聲明:本文為博主原創文章,未經博主允許不得轉載。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.