Swift错误:在自己的初始值内使用的variables

当我初始化一个实体的实例时,我得到错误的Variable used within its own initial value

这里是抛出错误的代码:

 class func buildWordDefinition (word:String, language:Language, root:TBXMLElement) -> WordDefinition { let word = WordDefinition(word: word, language: language) 

wordvariables的错误点。

这是WordDefinition类:

 class WordDefinition { let word: String let language: Language init(word: String, language:Language) { self.word = word self.language = language } } 

这个错误是什么意思 ?

您正在声明一个常量的名字,并尝试使用具有相同名称的参数来初始化它。 编译器试图使用刚刚声明的常量来分配自己的初始值,而不是使用参数。

您正在重新定义一个与您的函数中的参数具有相同名称的常量word

 class func buildWordDefinition (word:String, language:Language, root:TBXMLElement) -> WordDefinition { // same name as the parameter here let word = WordDefinition(word: word, language: language) 

你有一个名为word的函数参数,你正在尝试创build一个同名的常量。 给你的常量命名,而不是word

如果在解开文本时错过了,我也面临同样的错误。

在这里输入图像说明

通过添加如果解决了上述问题。

在这里输入图像说明