在Swift中,给定此函数:
func greet(name: String) {
print("Hello \(name)!")
}
正确的称呼方式是这样的:
greet(name: "Bob") // "Hello Bob!"
参数标签
name
greet("Bob")
你得到错误:
调用中缺少参数标签“name:”
但是把这个功能当作
关闭
let g = greet; g("Bob") // "Hello Bob!"
这让我想知道,不使用参数标签调用函数的最简洁的方法是什么?
用元组包起来?
我想把函数包装成
元组
(greet).0("Bob")
但这导致了错误:
“(String)->()”类型的值没有成员“0”
.
(greet,greet).0("Bob") // "Hello Bob!"
所以很明显,Swift将1值的简单元组视为值本身。
给元组参数一个标签有效:
(g:greet).g("Bob") // "Hello Bob!"
(g:greet).0("Bob") // "Hello Bob!"
把它排成一列?
到目前为止,我找到的最简洁的方法是将函数放入数组中:
[greet][0]("Bob") // "Hello Bob!"
它只使用5个字符
greet("Bob")
如果成功了
.
greet(name:)
不使用参数标签的函数?