OLD | NEW |
1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file |
2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
4 | 4 |
5 part of dart.math; | 5 part of dart.math; |
6 | 6 |
7 /** | 7 /** |
8 * A generator of random bool, int, or double values. | 8 * A generator of random bool, int, or double values. |
9 * | 9 * |
10 * The default implementation supplies a stream of | 10 * The default implementation supplies a stream of |
11 * pseudo-random bits that are not suitable for cryptographic purposes. | 11 * pseudo-random bits that are not suitable for cryptographic purposes. |
| 12 * |
| 13 * Use the Random.secure() constructor for cryptographic |
| 14 * purposes. |
12 */ | 15 */ |
13 abstract class Random { | 16 abstract class Random { |
14 /** | 17 /** |
15 * Creates a random number generator. | 18 * Creates a random number generator. |
16 * | 19 * |
17 * The optional parameter [seed] is used | 20 * The optional parameter [seed] is used to initialize the |
18 * to initialize the internal state of the generator. The implementation of | 21 * internal state of the generator. The implementation of the |
19 * the random stream can change between releases of the library. | 22 * random stream can change between releases of the library. |
20 */ | 23 */ |
21 external factory Random([int seed]); | 24 external factory Random([int seed]); |
22 | 25 |
23 /** | 26 /** |
| 27 * Creates a cryptographically secure random number generator. |
| 28 * |
| 29 * If the program cannot provide a cryptographically secure |
| 30 * source of random numbers, it throws an [UnsupportedError]. |
| 31 */ |
| 32 external factory Random.secure(); |
| 33 |
| 34 /** |
24 * Generates a non-negative random integer uniformly distributed in the range | 35 * Generates a non-negative random integer uniformly distributed in the range |
25 * from 0, inclusive, to [max], exclusive. | 36 * from 0, inclusive, to [max], exclusive. |
26 * | 37 * |
27 * Implementation note: The default implementation supports [max] values | 38 * Implementation note: The default implementation supports [max] values |
28 * between 1 and ((1<<32) - 1) inclusive. | 39 * between 1 and (1<<32) inclusive. |
29 */ | 40 */ |
30 int nextInt(int max); | 41 int nextInt(int max); |
31 | 42 |
32 /** | 43 /** |
33 * Generates a non-negative random floating point value uniformly distributed | 44 * Generates a non-negative random floating point value uniformly distributed |
34 * in the range from 0.0, inclusive, to 1.0, exclusive. | 45 * in the range from 0.0, inclusive, to 1.0, exclusive. |
35 */ | 46 */ |
36 double nextDouble(); | 47 double nextDouble(); |
37 | 48 |
38 /** | 49 /** |
39 * Generates a random boolean value. | 50 * Generates a random boolean value. |
40 */ | 51 */ |
41 bool nextBool(); | 52 bool nextBool(); |
42 } | 53 } |
OLD | NEW |