2014-10-16 101 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变量。