(0..9).to_a VS (0...9).to_a

Rubyのちょっとしたまとめ


%記法


%q!文字列!%!文字列!の違いは #{v} などの式展開ができるかどうか


"\"text\"" == %q!"text"!

v = 3
"\"#{v}\"" == %!"#{v}"!

あまり使うことはないけどコマンド出力

%x!dig google.co.jp!
=> "\n; <<>> DiG 9.8.3-P1 <<>> google.co.jp\n;; global options: +cmd\n;; Got answer:\n;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 29505\n;; flags: qr rd ra; QUERY: 1, ANSWER: 4, AUTHORITY: 0, ADDITIONAL: 0\n\n;; QUESTION SECTION:\n;google.co.jp.\t\t\tIN\tA\n\n;; ANSWER SECTION:\ngoogle.co.jp.\t\t300\tIN\tA\t173.194.126.151\ngoogle.co.jp.\t\t300\tIN\tA\t173.194.126.152\ngoogle.co.jp.\t\t300\tIN\tA\t173.194.126.143\ngoogle.co.jp.\t\t300\tIN\tA\t173.194.126.159\n\n;; Query time: 56 msec\n;; SERVER: 192.168.0.1#53(192.168.0.1)\n;; WHEN: Fri Dec 11 13:13:18 2015\n;; MSG SIZE rcvd: 94\n\n"

ドット(.)が一つ多いだけで結果が違う


(0..9).to_a
#=> [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
(0...9).to_a
#=> [0, 1, 2, 3, 4, 5, 6, 7, 8]

(0...9)の使いみち


ユーザからの入力数分文字列を生成したいような場合


def generate(n)
(0...n).map{ MY_STRINGS.sample }.join
end

きちんとspecとか書いていないとドットの数とか間違えるよねというお話

スポンサーサイト
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。