2016-05-10 15:03:32 -04:00
<!DOCTYPE html>
< html lang = "en" >
< head >
< meta charset = "utf-8" >
< meta name = "viewport" content = "width=device-width, initial-scale=1.0" >
< meta name = "generator" content = "rustdoc" >
< meta name = "description" content = "API documentation for the Rust `random` fn in crate `rand`." >
< meta name = "keywords" content = "rust, rustlang, rust-lang, random" >
< title > rand::random - Rust< / title >
< link rel = "stylesheet" type = "text/css" href = "../rustdoc.css" >
< link rel = "stylesheet" type = "text/css" href = "../main.css" >
< link rel = "shortcut icon" href = "https://www.rust-lang.org/favicon.ico" >
< / head >
< body class = "rustdoc" >
<!-- [if lte IE 8]>
< div class = "warning" >
This old browser is unsupported and will most likely display funky
things.
< / div >
<![endif]-->
< nav class = "sidebar" >
< a href = '../rand/index.html' > < img src = 'https://www.rust-lang.org/logos/rust-logo-128x128-blk.png' alt = 'logo' width = '100' > < / a >
< p class = 'location' > < a href = 'index.html' > rand< / a > < / p > < script > window . sidebarCurrent = { name : 'random' , ty : 'fn' , relpath : '' } ; < / script > < script defer src = "sidebar-items.js" > < / script >
< / nav >
< nav class = "sub" >
< form class = "search-form js-only" >
< div class = "search-container" >
< input class = "search-input" name = "search"
autocomplete="off"
placeholder="Click or press ‘ S’ to search, ‘ ?’ for more options…"
type="search">
< / div >
< / form >
< / nav >
< section id = 'main' class = "content fn" >
< h1 class = 'fqn' > < span class = 'in-band' > Function < a href = 'index.html' > rand< / a > ::< wbr > < a class = 'fn' href = '' > random< / a > < / span > < span class = 'out-of-band' > < span id = 'render-detail' >
< a id = "toggle-all-docs" href = "javascript:void(0)" title = "collapse all docs" >
[< span class = 'inner' > − < / span > ]
< / a >
2016-05-10 23:34:09 -04:00
< / span > < a id = 'src-1746' class = 'srclink' href = '../src/rand/lib.rs.html#945-947' title = 'goto source code' > [src]< / a > < / span > < / h1 >
2016-05-10 15:03:32 -04:00
< pre class = 'rust fn' > pub fn random< T: < a class = 'trait' href = '../rand/trait.Rand.html' title = 'rand::Rand' > Rand< / a > > () -> T< / pre > < div class = 'docblock' > < p > Generates a random value using the thread-local random number generator.< / p >
< p > < code > random()< / code > can generate various types of random things, and so may require
type hinting to generate the specific type you want.< / p >
< p > This function uses the thread local random number generator. This means
that if you' re calling < code > random()< / code > in a loop, caching the generator can
increase performance. An example is shown below.< / p >
< h1 id = 'examples' class = 'section-header' > < a href = '#examples' > Examples< / a > < / h1 >
< pre class = 'rust rust-example-rendered' >
< span class = 'kw' > let< / span > < span class = 'ident' > x< / span > < span class = 'op' > =< / span > < span class = 'ident' > rand< / span > ::< span class = 'ident' > random< / span > ::< span class = 'op' > < < / span > < span class = 'ident' > u8< / span > < span class = 'op' > > < / span > ();
< span class = 'macro' > println< / span > < span class = 'macro' > !< / span > (< span class = 'string' > " {}" < / span > , < span class = 'ident' > x< / span > );
< span class = 'kw' > let< / span > < span class = 'ident' > y< / span > < span class = 'op' > =< / span > < span class = 'ident' > rand< / span > ::< span class = 'ident' > random< / span > ::< span class = 'op' > < < / span > < span class = 'ident' > f64< / span > < span class = 'op' > > < / span > ();
< span class = 'macro' > println< / span > < span class = 'macro' > !< / span > (< span class = 'string' > " {}" < / span > , < span class = 'ident' > y< / span > );
< span class = 'kw' > if< / span > < span class = 'ident' > rand< / span > ::< span class = 'ident' > random< / span > () { < span class = 'comment' > // generates a boolean< / span >
< span class = 'macro' > println< / span > < span class = 'macro' > !< / span > (< span class = 'string' > " Better lucky than good!" < / span > );
}< / pre >
< p > Caching the thread local random number generator:< / p >
< pre class = 'rust rust-example-rendered' >
< span class = 'kw' > use< / span > < span class = 'ident' > rand< / span > ::< span class = 'ident' > Rng< / span > ;
< span class = 'kw' > let< / span > < span class = 'kw-2' > mut< / span > < span class = 'ident' > v< / span > < span class = 'op' > =< / span > < span class = 'macro' > vec< / span > < span class = 'macro' > !< / span > [< span class = 'number' > 1< / span > , < span class = 'number' > 2< / span > , < span class = 'number' > 3< / span > ];
< span class = 'kw' > for< / span > < span class = 'ident' > x< / span > < span class = 'kw' > in< / span > < span class = 'ident' > v< / span > .< span class = 'ident' > iter_mut< / span > () {
< span class = 'op' > *< / span > < span class = 'ident' > x< / span > < span class = 'op' > =< / span > < span class = 'ident' > rand< / span > ::< span class = 'ident' > random< / span > ()
}
< span class = 'comment' > // would be faster as< / span >
< span class = 'kw' > let< / span > < span class = 'kw-2' > mut< / span > < span class = 'ident' > rng< / span > < span class = 'op' > =< / span > < span class = 'ident' > rand< / span > ::< span class = 'ident' > thread_rng< / span > ();
< span class = 'kw' > for< / span > < span class = 'ident' > x< / span > < span class = 'kw' > in< / span > < span class = 'ident' > v< / span > .< span class = 'ident' > iter_mut< / span > () {
< span class = 'op' > *< / span > < span class = 'ident' > x< / span > < span class = 'op' > =< / span > < span class = 'ident' > rng< / span > .< span class = 'ident' > gen< / span > ();
}< / pre >
< / div > < / section >
< section id = 'search' class = "content hidden" > < / section >
< section class = "footer" > < / section >
< aside id = "help" class = "hidden" >
< div >
< h1 class = "hidden" > Help< / h1 >
< div class = "shortcuts" >
< h2 > Keyboard Shortcuts< / h2 >
< dl >
< dt > ?< / dt >
< dd > Show this help dialog< / dd >
< dt > S< / dt >
< dd > Focus the search field< / dd >
< dt > ⇤ < / dt >
< dd > Move up in search results< / dd >
< dt > ⇥ < / dt >
< dd > Move down in search results< / dd >
< dt > ⏎ < / dt >
< dd > Go to active search result< / dd >
< / dl >
< / div >
< div class = "infos" >
< h2 > Search Tricks< / h2 >
< p >
Prefix searches with a type followed by a colon (e.g.
< code > fn:< / code > ) to restrict the search to a given type.
< / p >
< p >
Accepted types are: < code > fn< / code > , < code > mod< / code > ,
< code > struct< / code > , < code > enum< / code > ,
< code > trait< / code > , < code > type< / code > , < code > macro< / code > ,
and < code > const< / code > .
< / p >
< p >
Search functions by type signature (e.g.
< code > vec -> usize< / code > or < code > * -> vec< / code > )
< / p >
< / div >
< / div >
< / aside >
< script >
window.rootPath = "../";
window.currentCrate = "rand";
window.playgroundUrl = "";
< / script >
< script src = "../jquery.js" > < / script >
< script src = "../main.js" > < / script >
< script defer src = "../search-index.js" > < / script >
< / body >
< / html >