basyura's blog

あしたになったらほんきだす。

41.4    条件式

 1 は true、0 は false

echo 1 ? 'true' : 'false'
" => true
echo 0 ? 'true' : 'false'
" => false

1 より大きい数は true で、0 未満も true

echo 100 ? 'true' : 'false'
" => true
echo -1 ? 'true' : 'false'
" => true

文字と数値を比較するときは、文字列が数値に変換される。文字列が数字でない場合は 0 になる。

echo 100 == '100'
" => 1 (true)
echo 0 == '0'
" => 1 (true)
echo 0 == 'zero'
" => 1 (true)
echo 1 == 'one'
" => 0 (false)

文字列を比較するときは 'ignorecase' オプションが使われるので大文字小文字が区別されない。

echo "abc" =~ "ABC"
" => 1 (true)
" 明示的に大文字小文字を区別する
echo "abc" =~# "ABC"
" => 0 (false)
" 明示的に大文字小文字を区別しない
echo "abc" =~? "ABC"
" => 1 (true)
" 大文字小文字を区別しない
echo "abc" ==? "ABC"
" => 1 (true)

判定一覧

'ignorecase'次第 大小文字考慮 大小文字無視
等しい == ==# ==?
等しくない != !=# !=?
より大きい > ># >?
より大きいか等しい >= >=# >=?
より小さい < <#
より小さいか等しい <= <=# <=?
正規表現マッチ =~ =~# =~?
正規表現非マッチ !~ !~# !~?
同一のインスタンス is
異なるインスタンス isnot

sleep でスリープ。m はミリ秒、指定しない場合は秒として扱われる。

let counter = 0
while counter < 10
  echo counter
  sleep 1000m
  let counter += 1
endwhile