我正在尝试创建一个从数组中获取随机字的变量。我使用下面的方法找到它然而它给我一个错误“缺少返回函数预期返回'字符串”
let array: [String] = ["Example1", "Example2"]
var chooseOne: String {
[Int(arc4random_uniform(UInt32(self.array.count)))]
}
如何使该功能正常工作? 我是swift的新手,任何帮助都会受到赞赏。 提前谢谢!
答案 0 :(得分:0)
两个问题:
1)你需要回归。计算属性(即var propertyName: Type { someCalculation }
)与闭包不同(简单的1行表达式可以跳过return语句并使其成为表达式的值)。
2)假设您需要数组中的值,您需要实际索引到数组中。
var chooseOne: String {
return array[Int(arc4random_uniform(UInt32(self.array.count)))]
}
答案 1 :(得分:0)
您的代码应返回字符串:
var chooseOne: String {
return "\(Int(arc4random_uniform(UInt32(self.array.count))))"
}
答案 2 :(得分:0)
错误表示您错过了添加return
声明:
return [Int(arc4random_uniform(UInt32(self.array.count)))]
^^^^^^
但是代码有另一个错误:您没有指定数组。正确的方法是:
return self.array[Int(arc4random_uniform(UInt32(self.array.count)))]
^^^^^^^^^^
答案 3 :(得分:0)
变量应该返回String。
let array = ["Example1", "Example2"]
var chooseOne: String {
let randomIndex = Int(arc4random_uniform(UInt32(array.count)))
return array[randomIndex]
}
答案 4 :(得分:0)
extension Array {
var chooseOne:T {
return self[Int(arc4random_uniform(UInt32(count)))]
}
}
let myArray = ["Example1", "Example2","Example3", "Example4", "Example5","Example6", "Example7","Example8", "Example9", "Example10"]
let myDoubleArray = [1.3, 2.7,3.1,4.4, 5.5,6.7, 7.2,8.8, 9.19, 10.09]
let myIntArray = [3, 2, 1, 4, 5, 7, 8, 9, 19, 11]
println(myArray.chooseOne) // "Example3"
println(myDoubleArray.chooseOne) // "5.5"
println(myIntArray.chooseOne) // "8"
答案 5 :(得分:0)
这个函数是我用来从数组中随机选择的东西:
func function_name() -> return_type {
^ ^
var unsignedArrayCount = UInt32(diceImages.count)
var unsignedRandomNumber = arc4random_uniform(unsignedArrayCount)
var randomNumber = Int(unsignedRandomNumber)
return array_name[randomNumber]
^
}
我在代码的下面放了一个胡萝卜,这个胡萝卜特定于你使用它的情况。