RubyのHash#fetchとHash#[]

Hash#[]は該当するキーが登録されていないときはデフォルト値が登録されていればデフォルト値、なければnilを返す

https://docs.ruby-lang.org/ja/latest/class/Hash.html#I_–5B–5D

book1 = book = {title: 'hoge', author: 'fuga'}
p book[:title]
# => "hoge"
p book[:published_at]
# => nil

book2 = Hash.new("default value")
p book2[:none]
# => "default value"

Hash#fetchはキーが存在しなければ例外を返す

第二引数にデフォルト値を指定することもでき、指定したキーが存在しない場合はデフォルト値が取得される

https://docs.ruby-lang.org/ja/latest/class/Hash.html#I_FETCH

# 基本的にはHash#[]と同じ動作
book1 = book = {title: 'hoge', author: 'fuga'}
p book.fetch(:title)
# => "hoge"

book2 = Hash.new("default value")
p book2.fetch(:none)
# =>  key not found: :none (KeyError)

# 第二引数にデフォルト値を指定
p book2.fetch(:none, 'default value')
# => "default value"      

Logicoolのマウスが意図せずダブルクリックになってしまう

1年ちょっと前に買ったLogicoolのマウスがたまに誤作動して、1クリックでダブルクリックになってしまう現象が起きた

もしや寿命…?と思ってビビっていたが、こちらの記事が出てきたので試しにPCとマウスの接続を切って、10秒間クリックしまくった

https://zapanet.info/blog/item/2937

そのおかげかは不明だが、意図しないダブルクリックはいまのところ起きていない

明日仕事をして問題なさそうだったら解決と言えそう