はじめに
移植やってます
not (Python)
if not v:
not v
がTrue
かFalse
>>> print(not 0)
True
>>> print(not 1)
False
>>> print(not None)
True
>>> print(not True)
False
>>> print(not False)
True
>>> print(not [])
True
>>> print(not {})
True
>>> print(not "")
True
0
と""
の否定でTrue
になるんですね。
! (Ruby)
> puts 0.!
false
> puts 1.!
false
> puts nil.!
true
> puts true.!
false
> puts false.!
true
> puts [].!
false
> puts {}.!
> puts ''.!
false
slack
で知ったのですが、.!
という書き方が好きですね。
Python
の否定するオブジェクトによる返り値の変化に対応するのが大変そうです。
それ用の判定メソッドを別途作成するか、オブジェクトをあらかじめ調査しておいて決め打ちするかですよね。
[追記]
[0, nil, false].include?(obj).! && obj.empty?.!
これだとSet
を含め、1行でいけそう。
メモ
- Python の not を学習した
- 道のりは遠そう