无法将类型 'Range<Int>' 的值转换为预期的参数类型 'Range<_>'
Cannot convert value of type 'Range<Int>' to expected argument type 'Range<_>'
使用 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 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)
}