当我初始化实体的实例时,我收到错误Variable used within its own initial value
。
以下是抛出错误的代码:
class func buildWordDefinition (word:String, language:Language, root:TBXMLElement) -> WordDefinition
{
let word = WordDefinition(word: word, language: language)
错误指向word
变量。
这是WordDefinition类:
class WordDefinition {
let word: String
let language: Language
init(word: String, language:Language)
{
self.word = word
self.language = language
}
}
这个错误是什么意思?
答案 0 :(得分:58)
您声明一个名为word
的常量,并尝试使用具有相同名称的参数来初始化它。编译器尝试使用刚刚声明的常量来分配自己的初始值,而不是使用参数。
答案 1 :(得分:15)
答案 2 :(得分:9)
您正在重新定义一个与函数中的参数同名的常量word
class func buildWordDefinition (word:String, language:Language, root:TBXMLElement) -> WordDefinition
{
// same name as the parameter here
let word = WordDefinition(word: word, language: language)
}
答案 3 :(得分:4)
您在作用域中有一个名为word
的函数参数,并且您尝试创建一个具有相同名称的常量。将您的常量命名为word
以外的常量。