Infix 函数构建更可读的语法

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.with(that: B):  Pair = Pair(this, that)


val map = mapOf("apple" with 1 , "banana" with 2)

你可能感兴趣的:(Infix 函数构建更可读的语法)