条件代入



イントロ
条件付き代入演算子(それ以外の「等しい」)は、ほとんどすべての現代のプログラミング言語で広く使われます.これは2つの別々の演算子の組み合わせとして働きます.

Rubyの例
この違いを説明するために、例題の2つの例を見てみましょう.両方のケースで“comment”リスト変数を出力します.
最初の場合、それは空のリストを返すでしょう、以前はそれには値がありませんでした(それは値として' nil 'を持ちました、そして、代入値として、それは右の値を得ます、それは空のリストです.
# Example-1
comments = nil
comments = comments || []
puts comments  # returns [], empty list
番目の例では、“comment”変数が既に値を持っているため、以前は空ではありません.
# Example-2
comments = ["First comment"]
comments = comments || []
puts comments  # returns ["First comment"]

Rubyの例(条件付きの引数"
今回は、条件付代入演算子を使用します.上記のセクションのように、両方のケースで「コメント」リスト変数を印刷します.
最初の場合、それは空のリストを返すでしょう、以前はそれには値がありませんでした(それは値として' nil 'を持ちました、そして、代入値として、それは右の値を得ます、それは空のリストです.
# Example-1
comments = nil
comments ||= []
puts comments  # returns [], empty list
番目の例では、“コメント”変数には既に値があるため、以前は空ではありません.
# Example-2
comments = ["First comment"]
comments ||= []
puts comments  # returns ["First comment"]

イーブンショーター
これは実際に1つの行に長い条件のチェックと割り当てを短縮することができます.“コメント”リスト変数を取得する例を見てみましょう.
module Commentable
   def comments
      if @comments
         @comments
      else
         @comments = []
      end
   end
end
ここで関数の内容を1行に短縮します.
module Commentable
   def comments
      @comments ||= []
   end
end
そして、これはどのように複数行のチェックと割り当て操作を1つのラインに縮小することができる素晴らしい例です.
上記の例はRuby PLを使用して実証されましたが、条件付き代入演算子はJavaScriptやPythonなどの他の言語でも使用できます.それで、実験してください.