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

Fra*_*scu 64 ios swift xcode6 ios8

当我正在初始化实体的实例时,我收到了错误Variable used within its own initial value.

这是抛出错误的代码:

class func buildWordDefinition (word:String, language:Language, root:TBXMLElement) -> WordDefinition
    {
        let word = WordDefinition(word: word, language: language)
Run Code Online (Sandbox Code Playgroud)

错误指向word变量.

这是WordDefinition类:

class WordDefinition {
    let word: String
    let language: Language

    init(word: String, language:Language)
    {
        self.word = word
        self.language = language
    }
}
Run Code Online (Sandbox Code Playgroud)

这个错误是什么意思 ?

Cez*_*zar 64

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


Shr*_*wan 17

如果在解开文本时错过了,我遇到了同样的错误.

在此输入图像描述

通过添加if解决上述问题.

在此输入图像描述

  • 谢谢,有同样愚蠢的错误,看不到它:P (4认同)

Rod*_*Rod 10

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

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


gwc*_*fey 6

您有一个word在作用域中调用的函数参数,并且您正在尝试创建一个具有相同名称的常量。将常量命名为word.