Kotlin语法简洁的背后

简洁的背后是一层一层语法约定
例:
//1. 传统写法,匿名内部类
button.setOnClickListener(object : View.OnClickListener {
    override fun onClick(v: View?) {
        v!!.visibility = View.INVISIBLE
    }
})
//2. 第一次简化 SAM转换(Single Abstract Method),用lambda表达式代替函数式接口
button.setOnClickListener(View.OnClickListener { v: View? ->
    v!!.visibility = View.INVISIBLE
})
//3. 第二次简化 省略接口名,此时不是给变量赋值,没有歧义,所以接口名可省略
button.setOnClickListener({ v: View? -> v!!.visibility = View.INVISIBLE })
//4. 第三次简化 移出表达式,lambda表达式作为末尾参数时可移出道括号外面
button.setOnClickListener() { v: View? -> v!!.visibility = View.INVISIBLE }
//5. 第四次简化 再省略小括号,移除表达式后没参数了,小括号可以省略
button.setOnClickListener { v: View? -> v!!.visibility = View.INVISIBLE }
//6. 第五次简化(最终写法) 一个参数的lambda表达式,可以不声明参数并省略->,此时用it代表单个参数的隐式名称
button.setOnClickListener { it.visibility = View.INVISIBLE }
结论
  语言越高级,越接近自然语言,kotlin语法简洁的背后是一层又一层的语法约定,从知其所以然角度看,它要复杂一些,
毕竟是站在多门语言语言的基础上(所以有网友说他像Java、Scala、Python、C、C#、Swift、JavaScript、
Groovy、shell),借鉴了多门语言特性,同时支持多种编程范式,例如函数式编程(表达式漫天飞)、面向对象,
所以初期使用时藐视大意可能会有坑
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值