Kotlin基礎(chǔ)語法

標(biāo)簽:kotlin?android?kotlin語法

摘要

如果你真的希望深入的了解kotlin語言,可以查看英文版Kotlin語言文檔,或者我的kotlin語言文檔中文翻譯項目KotlinDoc-cn:https://github.com/kymjs/KotlinDoc-cn

本文原創(chuàng),轉(zhuǎn)載請注明地址:http://blog.kymjs.com/

正文

在閱讀以下內(nèi)容前,你可能需要先了解一些Kotlin語言的特性:在語句的行尾可以不用加分號(加上也不會錯),聲明一個方法需要加上fun關(guān)鍵字,如果函數(shù)是重載父類的方法,還必須要加上override關(guān)鍵字,方法的參數(shù)是先寫形參名后跟冒號再寫形參類型;kotlin源文件不需要相匹配的目錄和包,源文件可以放在任何文件目錄。但是我們在寫Android的Activity等類時,清單文件中的聲明,必須與實際包路徑相匹配。

定義函數(shù)方法

例1:方法包含兩個Int參數(shù)并返回Int類型值

funsum(a:Int,b:Int):Int{returna+b}

例2:方法體只有一條語句,并且自動推測返回類型

funsum(a:Int,b:Int)=a+b

例3:如果方法是一個public的,則必須明確寫出返回類型

publicfun sum(a:Int,b:Int):Int=a+b

例4:返回一個沒有意義的值(類似Java中的void)

fun printSum(a:Int,b:Int):Unit{print(a+b)}// 如果是返回Unit類型,則可以省略(對于public方法也是這樣):publicfun printSum(a:Int,b:Int){print(a+b)}

使用nullable值以及空值檢測

引用或函數(shù)返回值如果可能為null值,則必須顯式標(biāo)記nullable。

(在類型后面跟一個問號表示這個對象可能為空,跟兩個感嘆號表示這個類型一定不為空)

fun main(args:Array){if(args.size()<2){print("Two integers expected")return}valx=parseInt(args[0])valy=parseInt(args[1])//必須做判斷,因為x或y有可能為空if(x!=null&&y!=null){// x 和 y 在已經(jīng)檢測不為null時,系統(tǒng)會自動將其轉(zhuǎn)換為非空類型checkprint(x*y)}}/**

* 如果str不能轉(zhuǎn)為Int類型,則返回null

*/fun parseInt(str:String):Int?{// (代碼略)}

in關(guān)鍵字的使用

如果一個數(shù)字是在某一個區(qū)間內(nèi),可以使用in關(guān)鍵字

//打印y次OKif(xin1..y-1)print("OK")//如果x不存在于array中,則輸出Outif(x!in0..array.lastIndex)print("Out")//打印1到5for(xin1..5)print(x)//遍歷集合(類似于Java中的for(String name : names))for(nameinnames)println(name)//如果names集合中包含text對象則打印yesif(textinnames)

類型檢測并自動轉(zhuǎn)換

is關(guān)鍵字的用法(類似于Java中的instanceof關(guān)鍵字)

例1

fun getStringLength(obj:Any):Int?{if(objisString){// 做過類型判斷以后,obj會被系統(tǒng)自動轉(zhuǎn)換為String類型returnobj.length}//在這里還有一種方法,與Java中instanceof不同,使用!is// if (obj !is String){//? // XXX// }// 這里的obj仍然是Any類型的引用returnnull}

例2

fun getStringLength(obj:Any):Int?{// 在左側(cè)obj已經(jīng)被判斷為String類型,所以在&&的右側(cè)可以直接將obj當(dāng)成String類型來使用if(objisString&&obj.length>0){returnobj.length}returnnull}

when表達式

(類似于Java中的switch)

fun cases(obj:Any){when(obj){1->print("第一項")"hello"->print("這個是字符串hello")isLong->print("這是一個Long類型數(shù)據(jù)")!isString->print("這不是String類型的數(shù)據(jù)")else->print("else類似于Java中的default")}}

版權(quán)聲明:本文為博主原創(chuàng)文章,未經(jīng)博主允許不得轉(zhuǎn)載。

Kotlin基礎(chǔ)語法

原文:http://blog.csdn.net/kymjs/article/details/47292739

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 1.函數(shù) (1)Main函數(shù)默認是Unit返回類型,可以定義其他返回類型:Int (2)直接聲明一個函數(shù),給出返回...
    賈里閱讀 598評論 0 0
  • 一、常量與變量(val,var) 1.什么是常量? 1 .val = value ,值類型;2.類似Java的fi...
    Serenity那年閱讀 590評論 0 7
  • 每種編程語言都有一定的語法、語義和執(zhí)行順序(同步),學(xué)習(xí)一種新語言也都是從這三者出發(fā),下面我們就只針對kotlin...
    samychen閱讀 4,672評論 0 6
  • 什么是Kotlin? 圖片發(fā)自簡書App Kotlin是JetBrains開發(fā)的基于JVM的語言,JetBrain...
    Kerry202閱讀 1,248評論 0 0
  • 小伙伴們,瘋狂動物城你們刷了幾遍?大家是不是被里面的動物所吸引了呢? 雖然已經(jīng)過了這么久了,但是現(xiàn)在回味起來還是蠻...
    6381262ab436閱讀 815評論 0 9

友情鏈接更多精彩內(nèi)容