无法从扩展中调用函数

Unable to call function from extension

我正在尝试在 swift 中使用 extension 附加一个字符串,但它抛出的错误类似于 "value of type 'String' has no member addString "

import UIKit

var str = "Hello, playground"

var str2 = str.addString(" Appending String ...")

extension String {
    mutating func addString(str:String) {
        self = self+str
    }
}

问题1:方法必须先定义,然后才能在全局范围内使用。

var str = "Hello, playground"

extension String{
    mutating func addString(str:String)
    {
        self = self + str
    }
}

var str2 = str.addString(" Appending String ...")

问题2:您定义的方法与您的使用方式不匹配。你的 addString(str:) 是这样工作的。

str.addString(str: " Appending String ...")
var str2 = str

要使 addString(_:) 符合您的使用需要。

extension String {
    func addString(_ str: String) -> String
    {
        return self + str
    }
}

var str2 = str.addString(" Appending String ...")