when

whenは少し特殊で、コンパイル時に評価されます。

なので、例えばWindowsとそれ以外のプラットフォームでインポートするモジュールを分けたい時などで重宝します。

when defined(windows):
  import winlean
  echo "Windows !"
else:
  import posix
  echo "not Windows!"

他にも、int型などはシステムによって違うサイズになったりするので、こんな例もあります。

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