random-swift 1.0.1

random-swift 1.0.1

Dan Burkhardt 维护。



random-swift

为使用 Swift 编写的 iOS & macOS 应用生成随机数据、内容和资产的工具。

CI Status Version License Platform Readme Score codebeat badge

系统要求

  • iOS v11.0 或更高版本
  • macOS v10.15 或更高版本(Mac Catalyst)

安装

random-swift 通过 CocoaPod 可用。要安装它,只需将以下行添加到您的 Podfile 中即可:

pod 'random-swift'

导入选项

导入到整个项目

打开 AppDelegate.swift

在类顶部添加一个导出导入语句,如下:

@_exported import random_swift

该框架现在存在于项目中每个类中。

注意:关于 @_exported import 存在一些不同的看法(见论坛),即框架之间可能存在对象和类名的命名冲突风险。然而,如果您在项目中没有遇到与导出导入方法相关的问题,那么就没有问题,这种便利的权衡可能值得。

将导入添加到类或文件

安装完成后,将其导入到您的类中

import random_swift

用法

目前支持

全局访问性与持久配置

  • 通过利用Swift内置的底层arc4random()随机数生成器确保安全和真正的随机性

  • Random作为一个共享实例,在导入的作用域内(类、项目等)可用

     // access it with:
     Random.(type)
  • 配置集在共享实例上持续整个应用程序会话期间

     // setup an IntRange configuration
     let intRange = IntRange(lower: 4, upper: 100)
    
     // setup a percentage range configuration
     let pctRange = PercentageRange(min: 0.10, max: 0.98)
    
     // assign the configurations
     Random.intRange = intRange
     Random.percentageRange = pctRange

    在此共享实例仍然在内存中(即应用程序仍在运行/未终止或置于后台),将使用上次使用的配置作为任何需要范围或上限值的随机值调用默认配置。

  • 如果需要动态更改它们以对新的请求,您可以动态使用新的范围配置

    以下是一个使用新范围配置检索新随机值的示例

     // setup:
     let newIntRange = IntRange(lower: 1, upper: 5000)
     
     // get a random int value within the range
     let rangedInt = Random.int.withinRange(range: newIntRange)
     
     // get a random int value anywhere between 0 and the newIntRange.upper
     Random.int.withUpperLimit(of: newIntRange)

生成随机单词

Random支持真正的随机单词生成。

随机单词来自一个包含235,886个单词的静态字典,所有这些默认打包在macOS中。

函数

  • 获取一个随机单词

    let randomWord = Random.word

### 随机值生成

随机整数

函数

  • 获取一个随机的 Int

     let randomInt = Random.int.value()
  • 获取一个小于特定 IntRange 上界限制的随机 Int

     // setup a range
     let range = IntRange(lower: 10, upper: 200)
     
     // get a random int value within the range
     let rangedInt = Random.int.withinRange(range: range)
  • 获取一个位于给定范围之内的随机 Int 值,介于上下界之间

     // setup a range
     let range = IntRange(lower: 10, upper: 250)
     
     // get a random int value between range.lower and range.upper
     let randomWithinRange: Int = Random.int.withinRange(range: newIntRange)

计算属性

  • 获取一个随机的 Int

     let randomInt = Random.int.value

注意:以下计算属性需要事先进行配置。

如果这些条件成立,将始终返回 0

- A config has not been set by using a function call
- or by directly configuring `Random.intRange`.

用法基本上与函数调用相同

  • 获取一个小于特定 IntRange 上界限制的随机 Int

     // setup a range & configure
     let range = IntRange(lower: 10, upper: 200)
     Random.intRange = range
     
     // get a random int value within the range
     let rangedInt = Random.int.withinUpperLimit
  • 获取一个位于给定范围之内的随机 Int 值,介于上下界之间

     // setup a range & configure
     let range = IntRange(lower: 10, upper: 250)
     Random.intRange = range
     
     // get a random int value between range.lower and range.upper
     let randomWithinRange: Int = Random.int.withinRange
     // randomWithinRange == some Int between 10 and 200, exclusive of 200 (so max 199)

随机百分比

函数

  • 获取一个随机百分比(也称为 Double),可选最大小数位四舍五入

     let randomPct = Random.percentage.value(roundedTo: 5)
     // returns percentage with no more than 5 place values
     // e.g. 0.45369
  • 获取一个小于给定 PercentageRange 最大限制的随机百分比,可选地四舍五入到最大小数位数值

     // setup a range
     let range = PercentageRange(lower: 0.10, upper: 0.999)
    
     // get a random int value within the range
     let rangedPct: Double = Random.percentage.withUpperLimit(of: range, maxDecimalPlaces: 3)
     // returns percentage with no more than 3 decimal places
     // e.g. 0.294
  • 获取一个位于给定范围之内的随机百分比值,介于最小和最大限制之间

     // setup a range
     let range = PercentageRange(lower: 0.15, upper: 0.322)
     
     // get a random int value between range.lower and range.upper
     let randomPctWithinRange: Double = Random.percentage.withinRange(range, maxDecimalPlaces: 1)
     // returns percentage with no more than 1 decimal place
     // e.g. 0.6

计算属性

  • 获取一个随机百分比(也称为 Double

     let randomPct: Double = Random.percentage.value

注意:以下计算属性需要事先进行配置。

如果这些条件成立,将始终返回 0.0

- A config has not been set by using a function call
- or by directly configuring `Random.percentageRange`.

用法基本上与函数调用相同

  • 获取一个小于给定 PercentageRange 最大限制的随机百分比

     // setup a range & configure shared instance
     let range = PercentageRange(lower: 0.15, upper: 0.322)
     Random.intRange = range
     
     // get a random percentage value within the range
     let rangedPct: Double = Random.percentage.withUpperLimit
  • 获取一个位于给定范围之内的随机百分比值,介于最小和最大限制之间

     // setup a range & configure
     let range = PercentageRange(lower: 0.01, upper: 0.9)
     Random.intRange = range
     
     // get a random int value between range.lower and range.upper
     let randomPctWithinRange: Double = Random.percentage.withinRange
     // randomWithinRange == some Int between 0.01 and 0.9, exclusive of 0.9 (so max 0.89)

作者

原作者: Dan Burkhardt @GigabiteLabs Twitter: @GigabiteDan

贡献者: (暂时没有其他人 ;)

许可证

random-swift 在 MIT 许可证下可用。有关更多信息,请参阅 LICENSE 文件。