&&=について
背景
||=
はよく見るのですが、&&=
は業務で初めて見て、??となったので備忘録として残しておきます。
左辺がtrueと見なされる値なら、右辺を評価し、結果を左辺に代入する
という挙動をします。
例、
irb(main):002:0> user = 'ユーザーです' => "ユーザーです" irb(main):003:0> user &&= 123 => 123 # 123が代入され、'userです' が上書きされている irb(main):004:0> user => 123 *** [1] pry(main)> hoge = 'hogeです' => "hogeです" [2] pry(main)> hoge &&= false => false # 右辺のfalseが代入されている [3] pry(main)> hoge => false *** [4] pry(main)> fuga = 'fugaです' => "fugaです" [5] pry(main)> fuga &&= '' => "" # 左辺の""が代入されている [6] pry(main)> fuga => ""
左辺が falseと見なされる場合かつ、右辺がtrueと見なされる値の場合
irb(main):020:0> hoge = nil => nil irb(main):021:0> hoge &&= 123 => nil # 左辺のhogeがnilなので、右辺の123は評価されず、nilが返却される irb(main):022:0> nil => nil *** [12] pry(main)> foo = false => false [13] pry(main)> foo &&= true => false # こちらも右辺は評価されない [14] pry(main)> foo => false *** [1] pry(main)> number &&= 123 => nil # numberが直前まで未定義の場合でも、エラーとはならず、nilを返す。 [2] pry(main)> number => nil
左辺が{}、[]の場合かつ、右辺がtrueと見なされる値の場合
irb(main):014:0> hoge = [] => [] irb(main):015:0> hoge &&= 123 => 123 irb(main):016:0> hoge => 123 *** irb(main):017:0> hoge = {} => {} irb(main):018:0> hoge &&= 123 => 123 irb(main):019:0> hoge => 123
RailsやRubyを学びたい人へ
RailsやRubyを学びたい人は、
Udemy で下記のコースを受講すると良いです★
✅1. フルスタックエンジニアが教える 即戦力Railsエンジニア養成講座
✅2. 【はむ式】ハンズオンで学ぶRuby on Rails 6【Dockerにも触れられる】 <- おすすめ。ハムさんはReactやTypeScriptの教材も非常に丁寧。
✅3. はじめてのRuby on Rails入門-RubyとRailsを基礎から学びWebアプリケーションをネットに公開しよう
また、
Udemy は定期的にセールをやっていますし(90%OFFとかもザラ)、
「30日間なら返金できる」ので、
満足できなかった時でも安心です。