When语句

示例:

  1. when system.hostOS == "windows":
  2. echo "running on Windows!"
  3. elif system.hostOS == "linux":
  4. echo "running on Linux!"
  5. elif system.hostOS == "macosx":
  6. echo "running on Mac OS X!"
  7. else:
  8. echo "unknown operating system"

when 语句几乎等价于 if 语句, 但有以下区别:

  • 每个条件必须是常量表达式,因为它被编译器求值。
  • 分支内的语句不打开新作用域。
  • 编译器检查语义并 为属于第一个求值为true的条件生成代码。when 语句在写平台特定代码时有用,类似于C语言中的 #ifdef 结构。