2014-10-16 102 views
2

我得到這個在Xcode 6.1(6A1046a),因爲我與6.0:斯威夫特字符串,字符串聯加上分配

var dog:String = "Dog" 
let plural:Character = "s"  
let dogs:String = dog.append(plural) 

遊樂場報道:

Playground execution failed: :29:23: error: cannot invoke 'append' with an argument of type 'Character' let dogs:String = dog.append(plural)

我爲什麼不能做這一點,雖然這是罰款:

dog.append(plural) 

回答

5

錯誤消息是誤導性的,但問題是,

mutating func append(c: Character) 

修改它的接收器和返回Void(又名()又名 「無」):

var dog:String = "Dog" 
let plural:Character = "s"  
dog.append(plural) // now dog contains the string "Dogs" 

隨着

let dogs = dog + String(plural) 

您可以創建一個新的字符串代替。

注:其實你可以指定

let foo = dog.append(plural) 

但會分配空的元組()foo(這是不是你想要什麼)。 代碼中的錯誤消息是由於您無法將() 分配給String變量。