【Ruby】&や:について

この記事はこれについての記事

&: 

初見だと分からん。

 

例えば下記の様な記述で使われいた。

filenamse = pathname.glob('*').map(&:basename).map(&:to_s).sort

 

array.map(&:メソッド名)

 

もっとわかりやすい例)

['a' ,'b'].map(&:upcase) #=> ["A", "B"]

 

これを踏まえて

 

# 「&:メソッド名」という引数を渡す方法
names = users.map(&:name)
=> ["佐藤一朗", "佐藤一朗", "佐藤一朗"]
 
 
# options[:fuga]が存在しないときに"fuga"が入る
fuga = options.delete(:fuga) || "fuga"
bar(options)
puts fuga
end
 
 
 
下記もメモ
user = nil

# 普通に書くとエラーが出る
user.name
=> NoMethodError

# ぼっち演算子「&.」を使うとnilになり、エラーにならない
user&.name
=> nil
 ②
# ぼっち演算子論理否定演算子を組み合わせる方
user = nil
if user && !user&.activated?
puts "if"
else
puts "else"
end

 

参考:

RubyでRubyっぽい書き方をしよう初級編 · GitHub

 

Ruby: アンパサンドとコロン`&:`記法について調べてみた|TechRacho(テックラッチョ)〜エンジニアの「?」を「!」に〜|BPS株式会社

 

qiita.com