![見出し画像](https://assets.st-note.com/production/uploads/images/142103014/rectangle_large_type_2_8bf839ea99064745f0754eae561ef5ec.png?width=1200)
STORES 『Ruby "enbugging" quiz』の感想戦を行いました
ごきげんよう🙋♀️ツクリンクEMのあっきーです(@kuronekopunk)
RubyKaigi 2024楽しかったですね。ステーキ美味しかったですね。ステーキ美味しかったですね。大事なことなので2回言いました。
STORESさんの 『Ruby "enbugging" quiz』が楽しかったので社内で問題を見ながら解き直したり、Rubyの構文について調べたりなど感想戦を行いました。
`$n` などのグローバル変数にする案や、`~3` のビット反転、`0 => ^r` のパターンマッチなど普段馴染みのない構文についての理解が深まり楽しかったです。
公式に載っていなかった別解
公式から解説記事以外の回答をしていたので投稿します。
問1
代入演算子 `+=` を利用しました。
未定義の n + 1_000 となりScore1となります。
# Change the following code
# to raise the expected error
n += 1_000
p n + 1
puts "no error"
問4
`3.` とすることで3行目のputsをチェインしました。
nへの代入は最後になり、putsのNoMethodErrorが出る前に `[2 + n..]` が評価されました。
# Good morning!
n = 3.
puts "I dunno error"[2 + n..]
こんなイメージ
n = 3.puts("I dunno error"[2 + n..])
問9
公式の解説だと `x-y` のスペース位置で解釈が変わるという話でしたが、
`x(x-y)` とxメソッドに引数を渡してあげました。
# The last quiz
def x = 2
def y = 1
puts "no error" * x(x-y)
x,yどちらでも引数が受け取れる場所に書けばいけました。
puts y"no error" * (x-y)
読んでくれてありがとうございます!少しでもいいなと思ったら「スキ❤️」してもらえると飛んで喜びます!シェアしてもらったらもっと嬉しいです!