?整理關鍵語法列表如下:
https://developer.android.com/kotlin/interop?hl=zh-cn | 官方指導鏈接 |
語法形式 | 說明 |
println("count ${count+num}") | 字符串里取值運算 |
val count = 2 var sum = 0? | 類型自動推導
var定義可變變量,可修改 |
val stradd = str1 + str2 | 字符串相加 |
println("Say \"hello\" \n") | 轉義序列 |
變量名稱應采用駝峰式大小寫形式,并以小寫字母開頭 | 編碼規范 |
fun birthdayGreeting(name: String): String {} | 函數定義 |
指定傳入形參的名字,可以不按順序傳參 | 具名實參 |
fun birthdayGreeting(name: String = "Rover", age: Int): String? | 默認實參 |
val languageName: String? = null | null安全 |
if (count == 42) { ? ? "I have the answer."? } | if條件表達式 表達式返回值為條件句中最后一個表達式值 |
val answerString = when { ? ? count == 42 -> "I have the answer." ? ? count > 35 -> "The answer is close." ? ? else -> "The answer eludes me." } | when條件表達式 返回類型要統一 每個分支要有返回 |
val fun1:(Int, Int)->Int={a,b->(a+b)} fun test(a : Int , b : (num1 : Int , num2 : Int) -> Int) : Int{ | 匿名函數定義在{}里,a,b入參,->表示轉向,返回a+b。 后面是高階函數,函數中回調函數 |
Kotlin符號介紹(一) - 簡書 | kotlin特殊符號使用介紹 |
class Car() class Car(val wheels: List<Wheel>) | 不帶參數構造 帶參數構造 |
val car = Car() | 類實例化 |
var gallonsOfFuelInTank: Int = 15 ? ? ? ? private set | 自定義屬性引用方式(get set) 外部可讀不可寫 |
class LoginFragment : Fragment() | 類繼承 |
override fun onCreateView( | 類方法重寫 |
private lateinit var usernameEditText: EditText | 類實例化后推遲變量初始化 |
無參的匿名函數形式為{} loginButton.setOnClickListener {//函數動作} | SAM轉換 |
伴生對象=java中的static,聲明靜態變量 | companion object |
private val viewModel: LoginViewModel by viewModels() | 屬性委托? |
String! ?可以表示?String ?或?String? | null不明確性通過平臺類型 |
val accountName = account.name!!.trim() | 非 null 斷言運算符?!!( 是null會跑出異常),不建議用 |
val accountName = account.name?.trim() val accountName = account.name?.trim()?:Default | 安全調用運算符??.(為空返回null,建議后再跟?:表示為空默認賦值為Default使用) |
val index: Int = 12?? ? val index: Int private lateinit var statusTextView: TextView | 屬性初始化 (2,3?方式避免管理null,少加?) 未初始化就使用會Kotlin 會拋出? |
https://developer.android.com/kotlin/style-guide?hl=zh-cn | kotlin官方編程規范 |
kotlin_04 數據結構_kotlin 列表交換位置_新鏡的博客-CSDN博客?Kotlin語言(七):數據結構 - 簡書 | 參考鏈接 |
var array=arrayOf(1,"hello",true) | 混合類型 |
?