1. A to B 这样的语法结构构建键值对.
to 并不是关键字, 之所以我们能用A to B这样的语法, 添加键值对, 是因为kotlin中使用了高级语法糖: Infix函数.
A to B, 的实际写法是: A.to(B)
2. infix fun String.beginsWith(prefix: String) =startsWith(prefix)
除去前面的infix 不说, 这是一个String类的扩展函数.
但是加上infix 关键字之后, 它就是一个infix函数了.
旧用法 if("hello kotlin".startsWith("hello")) { return true}
新用法, if("hello kotlin" startsWith "hello") { return true}
3. infix 函数允许我们将函数调用时的小数点, 括号等计算机相关的语法去掉. 从而使用一种更接近英语的语法来编写程序, 让代码看起来更加具有可读性.
4. Infix 函数有两个限制: (1) 不能是顶层函数, 只能是某个类的成员函数, 可以使用扩展函数的方式 将它定义到某个类当中.
(2) Infix 只能接收一个参数, 参数类型没有限制.
5. A to B 的源码
infix fun <A, B> A.with(that: B): Pair<A, B> = Pair(this, that)
val map = mapOf("apple" with 1 , "banana" with 2)
网友评论