我试图从一个函数获取两个返回值,并将它们放入一个具有已定义结构的变量中。
我知道我做得不对,因为我收到了错误。 这样做的正确方法是什么? - 还是我找错了树?
struct aWord {
var letters: [Character] = []
var word: String = ""
}
let myDictinary = ["cheese", "tree","pea","fleas","house"]
var chosenWord: aWord
func pickWord() -> (letters: Array<Character>, fullWord:String) {
var x = UInt32(myDictinary.count - 1)
var n = Int(arc4random_uniform(x))
var chosen = myDictinary[n]
var word : [Character] = []
for letter in chosen {
word.append(letter)
}
return (word, chosen)
}
chosenWord = pickWord()
println(chosenWord.word)
我收到的错误消息是针对 selectedWord = pickWord() 行的: (letters: Array, fullWord: String)' 无法转换为 'aWord'
最佳答案
chosenWord
是一个结构体,pickWord
返回一个元组。您不能只将元组存储到用于结构的空间中。要么将 chosenWord
声明为元组(具有适当的类型),要么使 pickWord
返回 aWord
。
关于macos - 如何在 swift (OSX) 中从函数到结构化变量传递多重返回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25491303/