Swift 错误:在其自己的初始值中使用的变量

Posted

技术标签:

【中文标题】Swift 错误:在其自己的初始值中使用的变量【英文标题】:Swift Error: Variable used within its own initial value 【发布时间】:2014-06-05 02:21:22 【问题描述】:

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

这个错误是什么意思?

【问题讨论】:

也许你不应该调用对象word 【参考方案1】:

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

【讨论】:

【参考方案2】:

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

如果解决了上述问题,则添加。

【讨论】:

谢谢,犯了同样愚蠢的错误,看不到:P【参考方案3】:

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

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

    // same name as the parameter here
    let word = WordDefinition(word: word, language: language)

【讨论】:

【参考方案4】:

您在作用域中有一个名为word 的函数参数,并且您正在尝试创建一个同名的常量。将您的常量命名为 word 以外的其他名称。

【讨论】:

以上是关于Swift 错误:在其自己的初始值中使用的变量的主要内容,如果未能解决你的问题,请参考以下文章

在自己的初始值中使用的变量 Swift 3

变量在其自己的初始值中使用,而变量在初始化后的闭包中使用

Xcode没有看到变量

Swift-错误:在初始化之前使用了变量“self.___”

Swift 5 LLDB 错误:警告:<EXPR>:12:9:警告:变量“$__lldb_error_result”的初始化从未使用过

在其自己的单独函数中解析 JSON 不起作用