Kotlin

1)数据类型

 2) 变量声明:

val:对应java - final ,不可变的变量(这不是常量嘛?)

eg. 表示一个区间 val range = 0..10  或 val range = 0 until 10

var:可变变量

3)函数

格式:fun functionname(param1:Int, param2:Int): Int { return 0 }  参数列表后面的Int是返回值类型,没有可以不写。

单行代码语法糖:fun methodName(param1: Int, param2: Int) = 0

4)逻辑控制语句

a) if:Kotlin中if语句相比Java有一个额外功能:可以有返回值。

1 fun largerNumber(num1: Int, num2: Int): Int {
2     return if (num1 > num2) {
3         num1
4     } else {
5         num2
6     }
7 }

语法糖:

fun largerNumber(num1: Int, num2: Int) = if (num1 > num2) num1 else num2

b) when

1 fun getScore(name: String) = when (name) {
2     "Tom" -> 86
3     "Jim" -> 77
4     "Jack" -> 95
5     "Lily" -> 100
6     else -> 0
7 }

c) for

1 fun main() {
2     for (i in 0..10) {  降序:把..换成 downTo  跳过: for (i in 0 until 10 step 2)
3         println(i)
4     }
5 }

d)class

 1 class Person {  默认不可继承,除非声明 open class   继承需要使用冒号 class Student:Person(){}
 2     var name = ""
 3     var age = 0
 4 
 5     fun eat() {
 6         println(name + " is eating. He is " + age + " years old.")
 7     }
 8 }
 9 
10 fun main() {   
11     val p = Person()
12     p.name = "Jack"
13     p.age = 19
14     p.eat()
15 }

e) data:自定义数据类,可以使用 equals()、hashCode()、toString()等方法

data class Cellphone(val brand: String, val price: Double)

f)object:可以用该关键字定义一个单例类

1 object Singleton {
2     fun singletonTest() {
3         println("singletonTest is called.")
4     }
5 }
6 Singleton.singletonTest()

5)Lambda

 

 

6) 函数式API

Android中有一个极为常用的点击事件接口OnClickListener,假设现在我们拥有一个按钮button的实例

button.setOnClickListener { v ->}

7)可空运算符(跟C#一样)

? 操作符表示当对象不为空时正常调用相应的方法,当对象为空时则什么都不做。

eg.  a不为空则返回a 否则返回b 

val c = a ?: b

posted @ 2022-03-07 18:06  番茄玛丽  阅读(163)  评论(0编辑  收藏  举报