回答編集履歴

1

\(3\)を追記

2016/12/18 03:35

投稿

sharow
sharow

スコア1149

test CHANGED
@@ -40,6 +40,16 @@
40
40
 
41
41
  println!("{}", id)
42
42
 
43
+
44
+
45
+ // (3)
46
+
47
+ let id: String = (0..8).map(|_| rng.gen_range(b'a', b'z'+1) as char)
48
+
49
+ .collect();
50
+
51
+ println!("{}", id);
52
+
43
53
  }
44
54
 
45
55
  ```
@@ -50,8 +60,12 @@
50
60
 
51
61
  (2)の方法はテーブルを用意しているので大げさな感じがします。
52
62
 
63
+ (3)の方法もありかもしれません。`b'z'+1`しているのはgen_range()が `[low, high)`だからです。(追記)
64
+
65
+
66
+
67
+ [AsciiGenerator](https://doc.rust-lang.org/rand/src/rand/src/lib.rs.html#626-640)の実装もテーブル参照のようです。
53
68
 
54
69
 
55
70
 
56
71
 
57
- [AsciiGenerator](https://doc.rust-lang.org/rand/src/rand/src/lib.rs.html#626-640)の実装もテーブルなので、しょうがないのかも。