【问题标题】:Array in Swift returning errorSwift中的数组返回错误
【发布时间】:2015-03-06 11:57:12
【问题描述】:
我正在尝试创建一个从数组中获取随机单词的变量。我正在使用下面的方法找到它,但是它给了我一个错误“Missing return function expected to return 'String”
let array: [String] = ["Example1", "Example2"]
var chooseOne: String {
[Int(arc4random_uniform(UInt32(self.array.count)))]
}
如何让该功能发挥作用?
我是 swift 的新手,任何帮助将不胜感激。
提前致谢!
【问题讨论】:
标签:
arrays
variables
swift
random
words
【解决方案1】:
两个问题:
1) 你需要在那里退货。计算属性(即var propertyName: Type { someCalculation })不像闭包(简单的 1 行表达式可以跳过 return 语句并将其作为表达式的值)。
2) 假设你想从数组中获取一个值,你需要实际索引到数组中。
var chooseOne: String {
return array[Int(arc4random_uniform(UInt32(self.array.count)))]
}
【解决方案2】:
你的代码应该返回字符串:
var chooseOne: String {
return "\(Int(arc4random_uniform(UInt32(self.array.count))))"
}
【解决方案3】:
错误说明你错过了添加return语句:
return [Int(arc4random_uniform(UInt32(self.array.count)))]
^^^^^^
但是代码还有另一个错误:您没有指定数组。正确的做法是:
return self.array[Int(arc4random_uniform(UInt32(self.array.count)))]
^^^^^^^^^^
【解决方案4】:
变量应该返回字符串。
let array = ["Example1", "Example2"]
var chooseOne: String {
let randomIndex = Int(arc4random_uniform(UInt32(array.count)))
return array[randomIndex]
}
【解决方案5】:
这个函数是我用来从数组中随机选择一些东西的:
func function_name() -> return_type {
^ ^
var unsignedArrayCount = UInt32(diceImages.count)
var unsignedRandomNumber = arc4random_uniform(unsignedArrayCount)
var randomNumber = Int(unsignedRandomNumber)
return array_name[randomNumber]
^
}
我在代码下面放了一个胡萝卜,它是特定于你使用它的情况的。