Swift错误:变量在其自身初始值内使用


71

当我初始化实体的实例时,我得到了错误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
    }
}

这个错误是什么意思 ?


1
也许您不应该调用该对象word
meda 2014年

Answers:


74

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


22

如果在展开文本时缺少内容,我也遇到了同样的错误。

在此处输入图片说明

通过添加是否解决上述问题。

在此处输入图片说明


4
谢谢,有同样愚蠢的错误,看不到它:P
Roland T.

11

您正在重新定义一个常量word,该常量与函数中的参数同名

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

5

您有一个word在范围内调用的函数参数,并且试图创建一个具有相同名称的常量。为您的常数命名而不是word

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.