macos - 如何在 swift (OSX) 中从函数到结构化变量传递多重返回

标签 macos struct swift return func

我试图从一个函数获取两个返回值,并将它们放入一个具有已定义结构的变量中。

我知道我做得不对,因为我收到了错误。 这样做的正确方法是什么? - 还是我找错了树?

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/

相关文章:

macos - 变量在 Bash 中用 "echo"覆盖文本问题

python - OSX 上的 'arch' 意外输出(使用 Mac M1 安装弹性 bean )

swift - 面向协议(protocol)编程: General struct of type Any in Protocol + introspection valueForKey()

go - 如何在Golang中使用 map 接口(interface)?

json - Go - 将通用结构传递给函数

ios - PhaseScriptExecution 失败,退出代码非零 + Fabric

objective-c - 如何获取 cocoa 中目录的大小和可用空间?

macos - ld : library not found for -lssl/clang: error: linker command failed with exit code 1 (use -v to see invocation)

ios - 在 IOS 的文本字段中自动完成 Google Places

ios - Web 服务被调用两次