文書   >   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 に準拠する型は、特に、スレッドの安全性とジェネレータの品質を立証する必要があります。



トピックス





インスタンスメソッド


関連





以下により採用


SystemRandomNumberGenerator



以下も見よ





乱数発生器


ベータソフトウェア

このドキュメントには、開発中の API または技術に関する予備情報が含まれています。この情報は変更されることがあり、このドキュメントに従って実装されたソフトウェアは、最終的なオペレーティングシステムソフトウェアでテストする必要があります。

Apple のベータ版ソフトウェアの使用方法の詳細について学ぶ >






目次
Xcode の新機能

  • 言語:Swift
  • SDK:
  • Xcode 10.0+     Beta  
  • フレームワーク
  • Swift 標準ライブラリ
  • 概観
  • トピックス
  • 関連












  • トップへ(Swift 標準ライブラリ)












    トップへ(Swift 標準ライブラリ)












    トップへ(Swift 標準ライブラリ)












    トップへ(Swift 標準ライブラリ)












    トップへ(Swift 標準ライブラリ)












    トップへ(Swift 標準ライブラリ)












    トップへ(Swift 標準ライブラリ)












    トップへ(Swift 標準ライブラリ)












    トップへ(Swift 標準ライブラリ)












    トップへ(Swift 標準ライブラリ)












    トップへ(Swift 標準ライブラリ)












    トップへ(Swift 標準ライブラリ)












    トップへ(Swift 標準ライブラリ)












    トップへ(Swift 標準ライブラリ)












    トップへ(Swift 標準ライブラリ)












    トップへ(Swift 標準ライブラリ)












    トップへ(Swift 標準ライブラリ)












    トップへ(Swift 標準ライブラリ)












    トップへ(Swift 標準ライブラリ)












    トップへ(Swift 標準ライブラリ)