while queue.empty?.!
というループを見つけて、二度見では理解できなくて三度見直した。見たことのない字面だから nil許容演算子(&.
)なのかと最初は思った。ドットノットが出てくるのってすごい。最初に while ! queue.empty?
が浮かぶでしょう? そうしたらそこから until queue.empty?
へも至るでしょう? 演算子にドットを付けて呼び出そうっていうステップが割り込む余地はないように思う。そういう書き方のパターンを考えたことがなかった。いやまあ自分は最初に until が浮かぶので(「キューが空になるまで繰り返す(until queue.empty?)」)、引き出しのひとつとして蓄えたうえでしまいっぱなしにするんだけど。