Swift “如何改变”;[任何]”;至;任何……”;
首先,我想为我的项目建立一个私人日志。因此,我创建了一个函数Swift “如何改变”;[任何]”;至;任何……”;,swift,Swift,首先,我想为我的项目建立一个私人日志。因此,我创建了一个函数tkprint(items:Any…来调用系统日志print(items:Any… 但是,在函数tkprint(items:Any…)中,我只能得到Any。所以,我想知道如何将“[任何]”改为“任何” 我知道我可以将项目简化为一个项目来解决问题 例如: func somewhere() { tklog("Hello", "swift", "!") } func tklog(_ items: Any...) { //ite
tkprint(items:Any…
来调用系统日志print(items:Any…
但是,在函数tkprint(items:Any…
)中,我只能得到Any
。所以,我想知道如何将“[任何]”改为“任何”
我知道我可以将项目简化为一个项目来解决问题
例如:
func somewhere() {
tklog("Hello", "swift", "!")
}
func tklog(_ items: Any...) {
//items is ["Hello", "swift", "!"]
tkprint(items)
}
func tkprint(_ items: Any...) {
//items is [["Hello", "swift", "!"]]
print(items)
}
打印:
[[你好,斯威夫特!]
目标:
func somewhere() {
tklog("Hello", "swift", "!")
}
func tklog(_ items: Any...) {
//items is ["Hello", "swift", "!"]
tkprint(parse(items))
}
func tkprint(_ items: Any...) {
//items is ["Hello", "swift", "!"]
print(parse(items))
}
func parse(items: [Any]) -> Any... {
//items is ["Hello", "swift", "!"]
//TODO: parse
return "Hello", "swift", "!"
}
打印:
你好,斯威夫特
您不能返回
Any…
对于方法parse(\uitems:Any)
,您可以返回Any
或String
进行打印
func somewhere() {
tklog("Hello", "swift", "!")
}
func tklog(_ items: Any...) {
//items is ["Hello", "swift", "!"]
tkprint(parse(items))
}
func tkprint(_ items: Any...) {
//items is ["Hello", "swift", "!"]
print(parse(items))
// Hello swift !
}
func parse(_ items: Any) -> Any {
//items is ["Hello", "swift", "!"]
if let items = items as? [String] {
return items.reduce("") { "\($0) \($1)" }
} else {
return ""
}
}
func parse(_ items: Any...) -> [Any] {
return items.map{ $0 }
// ["hello", "swift", "!"]
}
func parse(_ items: Any...) -> Any {
return items.map{ $0 }
// ["hello", "swift", "!"]
}
嗯…很好的解决方案,就像我做的一样。但我们能在不减少“项目”的情况下做到这一点吗。我希望返回一个项目,而不是一个项目。您不能返回
Any…
,您可以返回[Any]
或Any
,然后进行一些转换,如map
或reduce
。看我的编辑,我学会了。也许你是对的,我不能用Any…
类型将[Any]
发送到打印(项目:Any…
)。我不想知道“如何将[Any]
发送到打印(项目:Any…
”。但是,我想我只能知道这一点。