モックアップを作っていて、条件によって表示/非表示が分かれる要素があり、ランダムで表示/非表示させたいと思いました。
ランダムに 0 / 1 を返す
ぱっと思いついたのが他のJavaScriptとかでもよくやる 0 || 1 を返す方法。
Random.rand(0 .. 1)
Random#rand
に Range を渡すと Range 内の値がランダムに返されます。
ただ、Rubyの場合 nil
と false
以外は true
なので 0
も true
として扱われてしまいます。したがって if文で条件分岐させるには次のように書かなけれなりませんでした。
if Random.rand(0 .. 1) == 1 # true の場合の表示 end
array.sample
を使う
array.sample
sampleメソッドは、配列の要素を1つランダムに返します。配列が空の場合はnil
を返します。
ref. sample (Array) - Rubyリファレンス
配列内からランダムに要素を取り出せるので、[true, false]
という配列を使えばランダムに true
/ false
することができます。
if [true, false].sample # true の場合の表示 end
Ruby でランダムでtrue / false したい時は sample
メソッドを使う方が良さそうです。
普段 JavaScript がメインなので Ruby の 0
が true
なの結構忘れがち…
[参考]
- 作者: 五十嵐邦明,松岡浩平
- 出版社/メーカー: 技術評論社
- 発売日: 2018/11/22
- メディア: 単行本(ソフトカバー)
- この商品を含むブログを見る
PFU Happy Hacking Keyboard Lite2 for Mac 英語配列 USBキーボード Mac専用モデル ホワイト PD-KB200MA
- 出版社/メーカー: PFU
- 発売日: 2007/01/24
- メディア: Personal Computers
- 購入: 8人 クリック: 77回
- この商品を含むブログ (7件) を見る
`
キーにならもっと良かったナ… (これがキーボード沼への入り口なのか…