Kotlin 基礎(chǔ)語法實例詳解
Kotlin 基礎(chǔ)語法實例詳解
包
定義和引入Java一樣,在文件開頭, 行結(jié)束不需要” ; “
package com.test.hello import android.os.Bundle
變量
只讀變量,val 開頭,初始化后不能再賦值,相當(dāng)于Java的 final 變量
val a: Int = 1 val b = 1 //類型自動推斷為Int val c: Int //沒有初始化時必須指定類型 c = 1 //初始化
可變變量, var 關(guān)鍵字開頭
var x = 10 x = 3
函數(shù)
函數(shù)定義 fun 開頭, 完整的定義如下:
fun sum(a: Int, b: Int): Int {
return a + b
}
可以簡化成表達式,返回值自動推斷
fun sum(a: Int, b: Int) = a + b
函數(shù)沒有返回值時,可以不寫或者返回 Unit
fun test(arg: String) {
println(arg)
}
或者
fun test(arg: String): Unit {
println(arg)
}
注釋
和Java一樣,支持行注釋 " // " 和 塊注釋 "/ /"。
不同之處,Kotlin支持塊注釋嵌套,建議不用。
if else
使用條件語句, 和Java一樣
fun min(a: Int, b: Int): Int {
if (a > b) {
return b
} else {
return a
}
}
Kotlin支持if 表達式,以上代碼可以寫成: fun min(a: Int, b: Int) = if (a > b) b else a
for
fun main(args: Array<String>) {
for (arg in args) {
println(arg)
}
}
或者
for (i in args.indices) {
println(args[i])
}
while
和Java類似
fun main(args: Array<String>) {
var i = 0
while (i < args.size) {
println(args[i++])
}
}
when
when,支持豐富的功能, 比Java的 switch 自由
fun case(a: Int) {
when (a) {
1 -> println("1")
2 -> println("2")
else -> println("else")
}
}
范圍, 集合
使用 in 檢查一個數(shù)值是否在某個范圍之內(nèi)
if (x in 1..10) {
// do
}
檢查一個數(shù)值是否在某個范圍之外
if (x !in 0..10) {
//
}
在一個值范圍內(nèi)進行遍歷迭代
for (x in 0..10) {
//
}
使用 in 檢查一個集合是否包含某個對象
if (name in names) { //names.contains()
//
}
在一個集合上進行遍歷迭代
for (name in names) {
println(name)
}
null檢查
當(dāng)一個引用可能為 null 值時, 對應(yīng)的類型聲明必須明確地標(biāo)記為可為 null。
fun parseInt(str: String): Int? {
// todo
}
fun main(args: Array<String>) {
var name: String?
val x = parseInt(args[0])
if (x != null) { // check null
// todo
}
}
is 類型
is 檢查一個表達式的值是不是某個類型的實例, 如果對一個不可變的局部變量或?qū)傩赃M行過類型檢查, 那么之后的代碼就不必再對它進行顯式地類型轉(zhuǎn)換。
fun getStringLength(obj: Any): Int? {
if (obj is String && obj.length > 0) {
return obj.length // obj as String after is
}
return null
}
感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!
相關(guān)文章
一文吃透Spring?Cloud?gateway自定義錯誤處理Handler
這篇文章主要為大家介紹了一文吃透Spring?Cloud?gateway自定義錯誤處理Handler方法,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-03-03
關(guān)于SpringBoot接收json格式的Demo案例
這篇文章主要介紹了關(guān)于SpringBoot接收json格式的Demo案例,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-05-05
Java數(shù)據(jù)結(jié)構(gòu)之基于比較的排序算法基本原理及具體實現(xiàn)
最近剛學(xué)習(xí)完七種比較常見的基于比較的排序算法,感覺比較重要,所以寫個博客記錄一下,通讀本篇對大家的學(xué)習(xí)或工作具有一定的價值,需要的朋友可以參考下2021-09-09
MyBatis-Plus數(shù)據(jù)庫配置與數(shù)據(jù)源整合方案
本文詳細介紹了在MyBatis-Plus中進行數(shù)據(jù)庫配置與數(shù)據(jù)源整合的常見方法,包括單數(shù)據(jù)源和多數(shù)據(jù)源的配置步驟,以及如何使用SpringBoot的自動配置和手動配置來管理數(shù)據(jù)源,通過合理的配置,開發(fā)者可以簡化數(shù)據(jù)庫操作,實現(xiàn)高效的數(shù)據(jù)庫管理和復(fù)雜的應(yīng)用架構(gòu)2025-02-02

