kotlin实战-知识点(一)

  • 函数的几种写法:
    fun max(a: Int, b: Int): Int {
    	return if (a > b) a else b
    }
    
    表达式函数体
    fun max(a: Int, b: Int): Int = if (a > b) a else b
    
    省略掉返回值类型
    fun max(a: Int, b: Int) = if (a > b) a else b
    
  • val变量只能进行唯一一次初始化
  • val引用自身是不可变的,但是它指向的对象可能是可变的
  • 自定义访问器
    class Rectangle(val height: Int, val width: Int) {
    	val isSquare: Boolean 
    		get() {
    			return height == width
    		}
    }
    
  • kotlin不区分导入的是类还是函数,而且,它允许使用import关键字导入任何种类的声明。可以直接导入顶层函数的名称。
  • when能使用任何表达式作为分支条件
  • 如果没有给when表达式提供任何参数,条件分支就是任意的布尔表达式。
  • kotlin中,如果你检查了一个变量是某种类型,后面就不再需要转换它 。
  • kotlin中使用as关键字来表示到特定类型的显式转换
    val n = e as Num
    
  • kotlin中的while循环跟Java相同
  • for循环仅有一种形式
    1..10 // [1, 10]
    1 until [1, 10)
    10 downTo 1 step 2 // 10 8 6 4 2 
    
  • 迭代Map
    val binaryReps = TreeMap<Char, String>()
    for (c in 'A'..'F') {
    	val binary = Integer.toBinaryString(c.toInt())
    	binaryReps[c] = binary
    }
    for ((letter, binary) in binaryReps) {
    	println("$letter = $binary")
    }
    
  • 在迭代中同时跟踪当前项的下标。
    val list = arrayListOf("10", "11", "1001")
    for ((index, element) in list.withIndex()) 
    	println("$index: $element")
    
  • 用in来检查集合和区间的成员
  • 在Java中,受检异常必须显式处理,必须声明你的函数能抛出的所有受检异常,如果调用另一个函数,需要处理这个函数的受检异常,或者声明你的函数也能抛出这些异常。Kotlin并不区分受检异常和未受检异常,不用指定函数抛出的异常,而且可以处理也可以不处理异常。
  • Kotlin中声明集合
    val set = hashSetOf(1, 7, 53)
    val list = arrayListOf(1, 7, 53)
    val map = hashMapOf(1 to "one", 7 to "seven",  53 to "fifty-three")
    
  • kotlin中可以显式标明一些参数的名称
  • kotlin可以在声明函数的时候,指定参数的默认值,这样就可以避免创建重载的函数。
    fun <T> joinToString(c: Collection<T>, sep: String = ", ", prefix: String = "", postfix: String = ""): String
    
  • kotlin中,只要可以编译为Java类,你就可以为这个类添加自己的扩展。
    fun String.lastChar(): Char = get(length - 1)
    
  • 如果一个类的成员函数和扩展函数有相同的签名,成员函数往往会被优先使用。
  • 扩展属性
    val String.lastChar: Char
    	get() = get(length - 1)
    
  • 三重引号不需要转义
  • kotlin支持局部函数,并且扩展函数也可以被声明到局部函数当中。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值