將基於變量的元組直接傳遞給使用基於元組值的枚舉會導致編譯錯誤。例如:將var元組傳遞給枚舉值
我有如下的枚舉:
enum AnswerType {
case Objective(Int)
case Subjective(question: Int, answer: String)
}
var stAnswer = (question: 1, answer: "Student's Answer")
let answerType = AnswerType.Subjective(stAnswer) //Compilation error here - "Missing argument for parameter answer in call"
這使編譯器錯誤與雨燕2.1。但是當我將stAnswer
更改爲常量使用時,讓它正常工作。任何人有想法是什麼導致編譯器錯誤在這裏?
好奇的小編譯器特質。我也遇到了奇怪的元組行爲。也許你應該提交一個[bug報告](http://bugreport.apple.com)。在短期內,如果你確實需要'var stAnswer'而不是'let stAnswer',那麼將'answerType'改爲'let answerType = AnswerType.Subjective(問題:stAnswer.question,answer:stAnswer.answer)'。 (我知道這是不雅的,但對我來說,它看起來不那麼冒犯。) – Rob