在 Swift 中,Int.random(in:) 是一种生成随机整数的方法,它会在指定的范围内生成一个随机整数。这个方法是 Swift 提供的标准随机数生成 API,基于现代加密安全的随机数生成器(SystemRandomNumberGenerator)。
语法
let randomInt = Int.random(in: range)
range 是一个范围对象,例如 1…10 或 1..<10。
生成的随机整数会在 range 指定的范围内。
示例代码
1、生成范围内的随机数
let randomNumber = Int.random(in: 1...10)
print(randomNumber) // 可能输出 6
2、使用不同的范围
let randomPositive = Int.random(in: 0...100) // 0 到 100(含 100)
let randomNegative = Int.random(in: -50..<0) // -50 到 -1(不含 0)
print(randomPositive) // 例如:45
print(randomNegative) // 例如:-30
其他类似的方法
1、Double.random(in:)
生成指定范围内的随机浮点数。
let randomDouble = Double.random(in: 0..<1)
print(randomDouble) // 例如:0.7406018401119571
2、Float.random(in:)
生成指定范围内的随机单精度浮点数。
let randomFloat = Float.random(in: 0...10)
print(randomFloat) // 例如:9.477017
3、Bool.random()
生成一个随机布尔值。
let randomBool = Bool.random()
print(randomBool) // true 或 false
4、使用数组的 randomElement()
从数组中随机选择一个元素。
let fruits = ["苹果", "香蕉", "橘子"]
if let randomFruit = fruits.randomElement() {
print(randomFruit) // 可能是 "橘子"
}
5、使用集合的 randomElement()
randomElement() 也适用于集合类型(Set, Dictionary)。
let numbers: Set = [1, 2, 3, 4, 5]
if let randomNumber = numbers.randomElement() {
print(randomNumber) // 例如:2
}
使用自定义随机数生成器
如果需要更严格的随机数生成方式,可以提供自定义的随机数生成器。例如,使用 SystemRandomNumberGenerator:
var generator = SystemRandomNumberGenerator()
let customRandomInt = Int.random(in: 1...100, using: &generator)
print(customRandomInt) // 例如:29
注意事项
1、范围的合法性:范围的上下界必须是有效值,例如 1..<1 是非法的,会导致运行时崩溃。
2、适用场景:
Int.random(in:):适用于整数范围。
Double.random(in:) 和 Float.random(in:):适用于模拟概率或连续范围。
Bool.random():适用于 50% 概率事件。
3、安全性:基于 SystemRandomNumberGenerator,默认方法足够安全,适用于绝大多数场景。如果需要更复杂的加密安全,可能需要引入第三方库(如 CryptoKit)。
总结
常用随机生成方法:
整数:Int.random(in:)
浮点数:Double.random(in:)、Float.random(in:)
布尔值:Bool.random()
集合中的随机元素:randomElement()
它们覆盖了常见的随机数生成需求,简洁而强大。