文書   >   Swift   >   Swift 標準ライブラリ   >   Numbers and Basic Values   >   RandomNumberGenerator
    Beta  
プロトコル
RandomNumberGenerator
一様分布のランダムデータを提供する型。
概観
新しいランダム値の作成やコレクションのシャッフルなど、ランダムなデータを使用するメソッドを呼び出す時、乱数のソースとして使用されるべき RandomNumberGenerator 型を渡すことができます。ジェネレータを渡さないと、デフォルトの Random 型が使用されます。
ランダム性を使用する新しい API を提供する場合は、RandomNumberGenerator プロトコルに準拠したジェネレータおよび、デフォルトのシステムジェネレータを使用するバージョンを提供するバージョンを提供してください。たとえば、この Weekday 列挙型は、曜日をランダムに返す静的メソッドを提供します。
enum Weekday: CaseIterable { case sunday, monday, tuesday, wednesday, thursday, friday, saturday static func random<G: RandomNumberGenerator>(using generator: inout G) -> Weekday { return Weekday.allCases.randomElement(using: &generator)! } static func random() -> Weekday { var g = SystemRandomGenerator() return Weekday.random(using: &g) } }
RandomNumberGenerator プロトコルへの準拠
カスタムのR andomNumberGenerator 型は、デフォルトの Random 型とは異なる特性を持っています。例えば、シード可能なジェネレータを使用して、テスト目的でランダム値の同じシーケンスを生成することができます。
カスタム型を RandomNumberGenerator プロトコルに準拠させるには、必要な next() メソッドを実装します。next() を呼び出すたびに、一様で独立したランダムな値が生成されなければなりません。
RandomNumberGenerator に準拠する型は、特に、スレッドの安全性とジェネレータの品質を立証する必要があります。
トピックス
インスタンスメソッド
バイナリデータの、一様で独立した分布から値を返します。
必須。デフォルトの実装が提供されます。
func next<T>(upperBound: T) -> T
与えられた上限よりも小さいランダム値を返します。
関連
以下により採用
以下も見よ
乱数発生器
struct SystemRandomNumberGenerator
システムの乱数データのデフォルトのソース。
    Beta  
このドキュメントには、開発中の API または技術に関する予備情報が含まれています。この情報は変更されることがあり、このドキュメントに従って実装されたソフトウェアは、最終的なオペレーティングシステムソフトウェアでテストする必要があります。