Python にはpass
、空の関数、条件、ループを定義するためのキーワードがあります... Ruby に似たようなものはありますか?
Python の例:
def some_function():
# do nothing
pass
いいえ、Ruby にはそのようなものはありません。空のブロック、メソッド、モジュール、クラスなどが必要な場合は、空のブロックを記述します。
def some_method
end
それでおしまい。
Python では、すべてのブロックに少なくとも1 つのステートメントを含める必要があるため、"偽の" no-op ステートメントが必要です。Ruby にはステートメントがなく、式だけがあり、ブロックに式が含まれていないことは完全に合法です。
常にend
ステートメントがあるため、pass
必要ありません。
ルビーの例:
def some_function()
# do nothing
end
Ruby 3.0 の時点で、いわゆる「end
より少ない」メソッド定義がサポートさend
れるようになりました。すべてのメソッド定義でステートメントを必要としなくなりました。これは、上記の例のような空のメソッドを表現する最も簡潔な方法は、間違いなく次のようなものであることを意味します。
def some_function = nil
あるいは、非常に嫌われているセミコロンを使用した、より醜い 1 行のオプションが常にありました。
def some_function; end
これは、コードの記述方法を除いて、最初のソリューションについて実際には何も変更しないことに注意してください。
任意の数の引数で自由に使用できるようにしたい場合は、引数に小さなトリックが必要です。
def gobble *args, ≺ end