kotlin學習筆記(一)

kotlin基礎語法

Kotlin 文件以.kt為后綴

1.包聲明

代碼文件的開通一般為包的聲明

package com.sdq.ko
improt java.util.*
//方法
fun test(){}
//類聲明
class Runoob{}

kotlin 源文件不需要相匹配的目錄和包逛艰,源文件可以放在任何文件目錄萎河。
以上列子中test()的全名是com.runoob.main.test、Runoob的全名是com.runoob.main.Runoob.
如果沒有指定包,默認為default包

默認導入

有多個包會默認導入到每個kotlin文件中
kotlin.* ,kotlin.annotation.* , kotlin.collenction.* ,kotlin.io.,
kotlin.ranges.
,kotlin.sequences., kotlin.text.

函數(shù)定義

函數(shù)定義使用關鍵字fun參數(shù)個數(shù)為:參數(shù):類型

如下代碼段中sum是方法名稱查蓉,a和b是參數(shù)赫段,函數(shù)的返回類型是Int的

fun sum(a:Int,b:Int):Int{
return a+b
}

表達式作為函數(shù)體呀打,返回類型自定推斷

fun sum(a:Int,b:Int)=a+b
public fun sum(a:Int ,b Int):Int=a+b. //如果函數(shù)的修飾符是public,那么他的函數(shù)返回值就必須明確寫出糯笙。
如果函數(shù)沒有返回值贬丛,那么就像我們java中的void 
//次函數(shù)就是沒有返回值
fun printSum(a:Int,b:Int):Unit{

}
如果是返回 Unit類型的,則可以省略(對public修飾的函數(shù)也是一樣)
public fun printSum(a:Int,b:Int){
print (a+b)}

可變長的參數(shù)函數(shù)

函數(shù)的變長參數(shù)可以用vararg關鍵字進行標識:如下

fun vars(vararg v:Int){
    for(vt in v){
        print(vt)
    }
}
調(diào)用時可以使用vars(1给涕,2豺憔,4,6)

定義長量變量

可變變量定義 :var關鍵字

var <標識符> :<類型>=<初始值>
常量使用關鍵字val
val a:Int=10000000  //val 修飾的變量是不可變的够庙,只能賦值一次恭应,跟java中的final 關鍵字一樣。

常量與變量都可以沒有初始化值耘眨,但是在引用前是必須初始化的昼榛,編譯器支持自動類型判斷,即聲明時可以不指定類型毅桃,由編譯器判斷褒纲,如下代碼片段:

val a:Int =1
val b=1
val c:Int 
c=1
var x=5
x+=1

注釋

Kotlin 支持單行和多行注釋准夷,和java一樣 // 和 /注釋塊/ Kotlin 中允許嵌套

字符串模板

表示一個變量名或者變量值varName 表示變量值
${varName.fun()}表示變量的方法返回值

kotlin中NULL的檢查機制

kotlin 中的空安全設計對聲明可為空的參數(shù),在使用時要進行判空處理莺掠,有兩種處理方式衫嵌,字段后加!!,像java一樣拋空異常,另一種字段后加彻秆?楔绞,可不做處理返回值為null或配合?:做判空處理

var age:String?="23"http://類型后面加唇兑?表示可為空酒朵,允許age為null
//當age為null時會拋出空指針
val ages=age!!.toInt()
//當age為null時,不做任何處理扎附,返回值為null
val ages1=age?.toInt();
//表示當age為null時返回-1蔫耽,不為null時返回age的值
val ages2=age?.toInt()?--:-1

類型檢查及自動類型轉(zhuǎn)換

在kotlin中如果要判斷一個對象是否是某個類型使用關鍵字 is,在java中使用 instanceof 來判斷留夜,可以加!is 表示非

fun getStringLength(obj:Any):Int?{
    if(obj is String){
        return obj.length//自動轉(zhuǎn)成了String類型
    }
}

區(qū)間表達式

區(qū)間表達式由具有操作符形式.. de rangeTo 函數(shù)輔以in和!in形成

區(qū)間是任何可比較類型定義的匙铡,但對于整型原生類型,它有一個優(yōu)化的實現(xiàn)

for(i in 1..4)//全開區(qū)間   i>=1 i<=4
for(i in 1..4 step 2) //按照2的倍數(shù)增長
for(i in 4 downTo 1) //從4開始輪詢
for(i in 1 until 10) //半開半閉區(qū)間 排除最后一個碍粥,最后一個不算
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末鳖眼,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子嚼摩,更是在濱河造成了極大的恐慌钦讳,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,482評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件枕面,死亡現(xiàn)場離奇詭異愿卒,居然都是意外死亡,警方通過查閱死者的電腦和手機膊畴,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,377評論 2 382
  • 文/潘曉璐 我一進店門掘猿,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人唇跨,你說我怎么就攤上這事稠通。” “怎么了买猖?”我有些...
    開封第一講書人閱讀 152,762評論 0 342
  • 文/不壞的土叔 我叫張陵改橘,是天一觀的道長。 經(jīng)常有香客問我玉控,道長飞主,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,273評論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮碌识,結(jié)果婚禮上碾篡,老公的妹妹穿的比我還像新娘。我一直安慰自己筏餐,他們只是感情好开泽,可當我...
    茶點故事閱讀 64,289評論 5 373
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著魁瞪,像睡著了一般穆律。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上导俘,一...
    開封第一講書人閱讀 49,046評論 1 285
  • 那天峦耘,我揣著相機與錄音,去河邊找鬼旅薄。 笑死辅髓,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的赋秀。 我是一名探鬼主播利朵,決...
    沈念sama閱讀 38,351評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼猎莲!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起技即,我...
    開封第一講書人閱讀 36,988評論 0 259
  • 序言:老撾萬榮一對情侶失蹤著洼,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后而叼,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體身笤,經(jīng)...
    沈念sama閱讀 43,476評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,948評論 2 324
  • 正文 我和宋清朗相戀三年葵陵,在試婚紗的時候發(fā)現(xiàn)自己被綠了液荸。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,064評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡脱篙,死狀恐怖娇钱,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情绊困,我是刑警寧澤文搂,帶...
    沈念sama閱讀 33,712評論 4 323
  • 正文 年R本政府宣布,位于F島的核電站秤朗,受9級特大地震影響煤蹭,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,261評論 3 307
  • 文/蒙蒙 一硝皂、第九天 我趴在偏房一處隱蔽的房頂上張望常挚。 院中可真熱鬧,春花似錦稽物、人聲如沸奄毡。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,264評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽秧倾。三九已至,卻和暖如春傀缩,著一層夾襖步出監(jiān)牢的瞬間那先,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,486評論 1 262
  • 我被黑心中介騙來泰國打工赡艰, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留售淡,地道東北人。 一個月前我還...
    沈念sama閱讀 45,511評論 2 354
  • 正文 我出身青樓慷垮,卻偏偏與公主長得像揖闸,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子料身,可洞房花燭夜當晚...
    茶點故事閱讀 42,802評論 2 345

推薦閱讀更多精彩內(nèi)容