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"