点表示法
(Dot Notation)
区别于面向对象语言,函数和数据是Koka的核心。
点表示法很直观,方便将多个函数调用链接在一起形成链式调用:
fun showit( s : string )
s.encode(3).count.println
s.encode(3)并不是选择了对象下的encode方法,而是encode(s,3)的语法糖,后者将s写为第一个显式参数。
类似地,c.int 等效于 int(c),将一个字符转换成整型。
println(count(encode(s,3)))
这是s.encode(3).count.println的脱糖写法。
将点表示法设计为函数调用的语法糖有一优点:
链式调用风格不需要通过修改某种类型定义本身来实现,只需编写一个将该类型作为其第一个显式参数的新函数即可。
在大多数面向对象语言中,设计链式调用风格需要将方法添加到类定义本身中。如果类定义在库中,则直接添加并不总是可能的。