过程

为了在示例中定义如 echoreadLine 的新命令, 需要 procedure 的概念。 (一些语言叫 方法函数 。) 在Nim中新的过程用 proc 关键字定义:

  1. proc yes(question: string): bool =
  2. echo question, " (y/n)"
  3. while true:
  4. case readLine(stdin)
  5. of "y", "Y", "yes", "Yes": return true
  6. of "n", "N", "no", "No": return false
  7. else: echo "Please be clear: yes or no"
  8.  
  9. if yes("Should I delete all your important files?"):
  10. echo "I'm sorry Dave, I'm afraid I can't do that."
  11. else:
  12. echo "I think you know what the problem is just as well as I do."

这个示例展示了一个名叫 yes 的过程,它问用户一个 question 并返回true如果他们回答"yes"(或类似的回答),返回false当他们回答"no"(或类似的回答)。一个 return 语句立即跳出过程。 (question: string): bool 语法描述过程需要一个名为 question ,类型为 string 的变量,并且返回一个 bool 值。 bool 类型是内置的:合法的值只有 truefalse 。if或while语句中的条件必须是 bool 类型。

一些术语: 示例中 question 叫做一个(形) , "Should I…" 叫做 实参 传递给这个参数。