Swift NSString函数的语法用法

我有一个关于swift函数调用语法的基本问题。 我已阅读文档,但无法弄清楚。 于是决定在这里查询。

我写的一段代码

var string1 = NSString().stringByAppendingString("First string") var string2 = NSString.stringByAppendingString("Second string") println(string1) println(string2) 

两个string都具有相同的函数调用,但返回types不同。 这里唯一的区别是() 。 我出去了

第一个string

(function)

问题是为什么它没有给出警告/错误。 这是var string2持有stringByAppendingString方法体? 发生了什么事情,像我这样的新开发者可以很容易地犯这样一个错字,不能弄清楚。

你能解释一下为什么它没有回报价值吗?

发生这种情况是因为swift方法是curried函数(你可以在Ole Begemann的文章中find详细的解释)。

所以你实际上在下面一行中得到了什么:

 var string2 = NSString.stringByAppendingString("Second string") 

是一个以string为参数并返回结果的函数

 "Second string".stringByAppendingString(parameter) 

你可以通过调用string2作为普通函数来检查:

 string2("123") // Prints: "Second string123"