Swift中的数组返回错误

时间:2015-03-06 11:57:12

标签: arrays variables swift random words

我正在尝试创建一个从数组中获取随机字的变量。我使用下面的方法找到它然而它给我一个错误“缺少返回函数预期返回'字符串”

let array: [String] = ["Example1", "Example2"]

var chooseOne: String {

        [Int(arc4random_uniform(UInt32(self.array.count)))]

    }

如何使该功能正常工作? 我是swift的新手,任何帮助都会受到赞赏。 提前谢谢!

6 个答案:

答案 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]
                    ^
    }

我在代码的下面放了一个胡萝卜,这个胡萝卜特定于你使用它的情况。