整理关键语法列表如下:
|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------|
| https://developer.android.com/kotlin/interop?hl=zh-cn | 官方指导链接 |
| ##### 语法形式 | ##### 说明 |
| println("count ${count+num}") | 字符串里取值运算 |
| val count = 2 var sum = 0 | 类型自动推导 val
定义只读变量,优先 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{ return a + b.invoke(3,5) //8 } | 匿名函数定义在{}里,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 init { index = 12 } private lateinit var statusTextView: TextView | 属性初始化 (2,3 方式避免管理null,少加?) 未初始化就使用会Kotlin 会抛出 UninitializedPropertyAccessException
|
| https://developer.android.com/kotlin/style-guide?hl=zh-cn | kotlin官方编程规范 |
|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------|
| kotlin_04 数据结构_kotlin 列表交换位置_新镜的博客-CSDN博客Kotlin语言(七):数据结构 - 简书 | 参考链接 |
| var array=arrayOf(1,"hello",true) | 混合类型 |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
[kotlin数据结构]