Swift Error:变量在其自己的初始值内使用

时间:2014-06-05 02:21:22

标签: ios swift ios8 xcode6

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

这个错误是什么意思?

4 个答案:

答案 0 :(得分:58)

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

答案 1 :(得分:15)

  

在打开时错过了 if 时,我遇到了同样的错误   文字。

enter image description here

通过添加解决上述问题。

enter image description here

答案 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以外的常量。