我的代码简单如下:
var println = print;
println("test");
它给了我错误:missing argument for parameter #2 in call
。我添加了更多的论点:
println("test",".","\n");
它仍然给我同样的错误。为什么会这样?
答案 0 :(得分:1)
以下是public func print(_ items: Any..., separator: String = default, terminator: String = default)
功能的定义:
items
当您获得对它的引用时,您丢弃了命名参数,因此所有输入都被视为Any...
的元素,因为separator
不是预定义的参数量。在此定义中,无法提供terminator
和print
。
她是Swift看到的函数类型:
答案 1 :(得分:0)
除非你有某种非常具体的理由需要这样做,否则这应该会以更加迂回的方式实现所需的功能:
func println (_ items: Any..., separator: String = " ", terminator: String = "\n") {
for item in items {
print(item, separator: separator, terminator: "")
}
print(terminator, separator: "", terminator: "")
}
println("test")
println("test",".","\n")