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 语句启用了条件编译技术。一种特殊的语法扩展是,可以在 object 定义中使用 when 结构。