方法调用语法

调用例程有一个语法糖:语法 obj.method(args) 可以用来代替 method(obj,args) 。如果没有剩余的参数,则可以省略括号: obj.len (而不是 len(obj) )。

此方法调用语法不限于对象,它可以用于任何类型:

  1. import strutils
  2.  
  3. echo "abc".len # is the same as echo len("abc")
  4. echo "abc".toUpperAscii()
  5. echo({'a', 'b', 'c'}.card)
  6. stdout.writeLine("Hallo") # the same as writeLine(stdout, "Hallo")

(查看方法调用语法的另一种方法是它提供了缺少的后缀表示法。)

所以“纯面向对象”代码很容易编写:

  1. import strutils, sequtils
  2.  
  3. stdout.writeLine("Give a list of numbers (separated by spaces): ")
  4. stdout.write(stdin.readLine.splitWhitespace.map(parseInt).max.`$`)
  5. stdout.writeLine(" is the maximum!")