Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

点表示法

(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的脱糖写法。

将点表示法设计为函数调用的语法糖有一优点:

链式调用风格不需要通过修改某种类型定义本身来实现,只需编写一个将该类型作为其第一个显式参数的新函数即可。

在大多数面向对象语言中,设计链式调用风格需要将方法添加到类定义本身中。如果类定义在库中,则直接添加并不总是可能的。