过程
为了在示例中定义如 echo 和 readLine 的新命令, 需要 procedure 的概念。 (一些语言叫 方法 或 函数 。) 在Nim中新的过程用 proc 关键字定义:
- proc yes(question: string): bool =
- echo question, " (y/n)"
- while true:
- case readLine(stdin)
- of "y", "Y", "yes", "Yes": return true
- of "n", "N", "no", "No": return false
- else: echo "Please be clear: yes or no"
- if yes("Should I delete all your important files?"):
- echo "I'm sorry Dave, I'm afraid I can't do that."
- else:
- 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 类型是内置的:合法的值只有 true 和 false 。if或while语句中的条件必须是 bool 类型。
一些术语: 示例中 question 叫做一个(形) 参, "Should I…" 叫做 实参 传递给这个参数。