Kotlin編程基礎(chǔ)語(yǔ)法編碼規(guī)范
前言
上一篇我們認(rèn)識(shí)了Kotlin編程語(yǔ)言,也搭建好開發(fā)環(huán)境。本篇就進(jìn)入Kotlin的基礎(chǔ)語(yǔ)法介紹,與其他編程語(yǔ)言一樣,Kotlin也有自己的一套編碼規(guī)范。
文章總覽
1.Kotlin基本語(yǔ)法
1.1 函數(shù)聲明
使用關(guān)鍵字 fun
聲明:
fun sum(a: Int, b: Int): Int { return a + b }
以上函數(shù)有倆個(gè) int
參數(shù):a , b;返回值為 Int
類型值。
在Kotlin中,返回值類型可以自行推斷,函數(shù)體可以是表達(dá)式:這與Java是有區(qū)別的,直接用 =
相連
fun sum(a: Int, b: Int) = a + b
無(wú)返回值的函數(shù),使用 Unit
為寫法更簡(jiǎn)便可以將 Unit 省略。
fun printSum(a: Int, b: Int): Unit { println("sum of $a and $b is ${a + b}") } // Unit 返回類型可以省略
1.2 程序主入口
Kotlin 程序的入口是 main
函數(shù),與 Java 是一樣的。
fun main() { println("Hello world!") // 打印字符串 }
程序在執(zhí)行時(shí),會(huì)先進(jìn)入 main 函數(shù)開始執(zhí)行。
1.3 變量
- 只讀局部變量(常量) 使用
val
定義
val a: Int = 1 // ?即賦值 val b = 2 // ?動(dòng)推斷出 `Int` 類型 val c: Int // 如果沒有初始值類型不能省略 c = 3 // 明確賦值
- 可重新賦值變量 使用
var
定義
var x = 5 // ?動(dòng)推斷出 `Int` 類型 x += 1 // x重新賦值
這與 Java 有很大區(qū)別,不用指定變量的類型,有編譯器自動(dòng)推斷出來(lái)。
1.4 條件表達(dá)式
與 Java 中的 if 語(yǔ)句一樣
if (a > b) { return a } else { return b }
在 Kotlin中 if
也可以?作表達(dá)式,更加簡(jiǎn)便
fun max(a: Int, b: Int) = if (a > b) a else b
1.5 when表達(dá)式
when 將它的參數(shù)與所有的分?條件順序?較,直到某個(gè)分?滿?條件
when (obj) { 1 -> "One" "Hello" -> "Greeting" is Long -> "Long" !is String -> "Not a string" else -> "Unknown" }
可以類比 Java 中的 switch 語(yǔ)句。
1.6 空值與空檢測(cè)
一個(gè)表達(dá)式或者一個(gè)變量可以為Null, 在Kotlin中可以使用 ?
來(lái)結(jié)尾表示
fun parseInt(str: String): Int? { // …… } // 函數(shù)返回值可為空,當(dāng)返回值 不是 Int 類型,返回值就是Null
這一特性解決了 Java 中一老大難的問題:NullpointException 空指針報(bào)錯(cuò)問題,在日常開發(fā)中幫開發(fā)者提高了不少開發(fā)效率和減少了不少bug。
1.7 區(qū)間使用
使? in
操作符來(lái)檢測(cè)某個(gè)數(shù)字是否在指定區(qū)間內(nèi)
val x = 10 val y = 9 if (x in 1..y+1) { println("in range") }
這個(gè)特性可以運(yùn)用到 區(qū)間和數(shù)列中。
2.Kotlin編碼規(guī)范
目錄結(jié)構(gòu):可以類比 Java 項(xiàng)目,包名的規(guī)則:小寫字母,公司/組織域名反寫
代碼源文件:以 .kt 為擴(kuò)展名,命名規(guī)則首字母大寫的駝峰風(fēng)格,例如 HelloWorld.kt
命名規(guī)則:
- 類與對(duì)象的名稱以大寫字母開頭并使用駝峰風(fēng)格
- 包的名稱總是小寫且不使用下劃線
文檔注釋:
- 多行注釋
- 單行注釋
代碼縮進(jìn)風(fēng)格要統(tǒng)一
注解:將注解放在單獨(dú)的?上,在它們所依附的聲明之前,并使?相同的縮進(jìn)
- 鏈?zhǔn)秸{(diào)用:對(duì)鏈?zhǔn)秸{(diào)?換?時(shí),將
.
字符或者?.
操作符放在下??,帶有縮進(jìn) - 不在
.
或者?.
左右留空格:foo.bar().filter { it > 2 }.joinToString() , foo?.bar()
- 在
//
之后留?個(gè)空格: // 這是?條注釋 - 不要在?于指定類型參數(shù)的尖括號(hào)前后留空格:
class Map { …… }
- 不要在
::
前后留空格:Foo::class 、String::length
- 不要在?于標(biāo)記可空類型的
?
前留空格:String?
總結(jié)
本文主要講解 Kotlin 常用的基本語(yǔ)法,后續(xù)會(huì)針對(duì)特定的知識(shí)點(diǎn)展開學(xué)習(xí),同時(shí)學(xué)習(xí)了Kotlin 編碼規(guī)范,對(duì)日常規(guī)范編寫代碼是非常有幫助。
以上就是Kotlin編程基礎(chǔ)語(yǔ)法編碼規(guī)范的詳細(xì)內(nèi)容,更多關(guān)于Kotlin 語(yǔ)法編碼規(guī)范的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
vscode配置go開發(fā)環(huán)境的實(shí)戰(zhàn)過程
vscode配置go的開發(fā)環(huán)境很簡(jiǎn)單,下面這篇文章主要給大家介紹了關(guān)于vscode配置go開發(fā)環(huán)境的實(shí)戰(zhàn)過程,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-06-06