You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Swift自定义封装print函数后字符串换行符失效问题排查

自定义打印函数异常问题解决方案

根因分析

  • Swift 语言中,Any...类型的可变参数在函数内部会被自动封装为[Any]数组类型。你封装的pLog函数直接将items传给print,相当于给原生print函数传入了一个数组类型的参数,而非把items中的每个元素拆分为独立参数传入print的可变入参。
  • 原生print接收到数组参数时,会直接打印数组对象本身的结构,因此外层会带上方括号,数组内部的字符串转义符\n也只会作为普通字符显示,不会被解析为换行。

修复代码

将items展开为可变参数列表后再传入print即可,若要完全对齐原生print的能力,也可将分隔符、结束符参数透传:

func pLog(_ items: Any..., separator: String = " ", terminator: String = "\n") {
    print(items..., separator: separator, terminator: terminator)
}

修改后调用pLog("a\nb")就会输出和原生print完全一致的结果。

内容的提问来源于stack exchange,提问作者Ryan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 06:06:04