When语句

示例:

  1. when sizeof(int) == 2:
  2. echo "running on a 16 bit system!"
  3. elif sizeof(int) == 4:
  4. echo "running on a 32 bit system!"
  5. elif sizeof(int) == 8:
  6. echo "running on a 64 bit system!"
  7. else:
  8. echo "cannot happen!"

when 语句几乎与 if 语句完全相同,但有一些例外:

  • 每个条件 (expr) 必须是一个类型为 bool 的常量表达式。
  • 语句不打开新作用域。
  • 属于计算结果为true的表达式的语句由编译器翻译,其他语句不检查语义。

when 语句启用条件编译技术。 作为一种特殊的语法扩展, when 结构也可以在 object 定义中使用。