使用 Swift 4.2,我在这个函数中得到标题作为错误:
func jitter(range: Int) -> Int {
return Int.random(in: 0..<range, using: SystemRandomNumberGenerator())
}
问题:
- Range<_> 的确切含义是什么?
- 有没有更好的方法来获得它?我只是想在动画循环中使用一个小的随机数。
最佳答案
Swift 编译器给你一个错误信息。问题是 Int.random(in:using:)
的第二个参数必须传递给 inout
(即带有 &
前缀)。这有效:
func jitter(range: Int) -> Int {
var rng = SystemRandomNumberGenerator()
return Int.random(in: 0..<range, using: &rng)
}
更简单的是,完全省略 using:
参数(SystemRandomNumberGenerator
无论如何都是默认的 RNG):
func jitter(range: Int) -> Int {
return Int.random(in: 0..<range)
}
关于swift - 无法将类型 'Range<Int>' 的值转换为预期的参数类型 'Range<_>',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54245851/