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
新浪微博:@劉某人程式員
著作權聲明:本文為博主原創文章,未經博主允許不得轉載。