Swiftで可変長引数に配列を展開したかった
よくプリプロセッサを使ってデバッグ時のみ出力するようにprint
を書き換える例があるんだけど、実際使ってみる段になって可変長引数の引き渡しができなくて困った。。。
(golang
の...args
で受け取ってargs...
で展開みたいなのがしたかった)
とりあえず、print
の書き換えが目的だったので出力がそれっぽくなればいいと思い下記のように対応した。
func print(_ items: Any..., separator: String = " ", terminator: String = "\n") {
#if DEBUG
items.enumerated().forEach { (index, item) in
if index == items.count - 1 {
Swift.print(item, separator: "", terminator: terminator)
} else {
Swift.print(item, separator: "", terminator: separator)
}
}
#endif
}
ちゃんとした言語仕様があったら書き直したい。。。