方法调用语法
调用例程有一个语法糖:语法 obj.method(args) 可以用来代替 method(obj,args) 。如果没有剩余的参数,则可以省略括号: obj.len (而不是 len(obj) )。
此方法调用语法不限于对象,它可以用于任何类型:
- import strutils
- echo "abc".len # is the same as echo len("abc")
- echo "abc".toUpperAscii()
- echo({'a', 'b', 'c'}.card)
- stdout.writeLine("Hallo") # the same as writeLine(stdout, "Hallo")
(查看方法调用语法的另一种方法是它提供了缺少的后缀表示法。)
所以“纯面向对象”代码很容易编写:
- import strutils, sequtils
- stdout.writeLine("Give a list of numbers (separated by spaces): ")
- stdout.write(stdin.readLine.splitWhitespace.map(parseInt).max.`$`)
- stdout.writeLine(" is the maximum!")