我经常发现自己输入像print("myVar: \(myVar)")
这样的调试打印,当我想打印几个这样的变量时,编写它变得乏味。
我想写一个函数(如果是内置的,就使用它),它只需要我输入一次名字,比如printVar(myVar)
,如果myVar的值是20,它就会打印myVar: 20
。
所以我的问题是:
- 你知道有一个内置的Swift函数已经提供了这样的功能吗?我是一个经验丰富的Swift开发人员,我从来没有听说过这样的事情,我也搜索了文档,谷歌和StackOverflow,都没有用-不,dump()不做这项工作
- 否则,你知道如何获取字符串形式的变量 name 吗?
- 镜像或KeyPaths都不合适,它们只处理声明类型的属性名,而不是变量名。我也不想改变我的代码架构来添加日志,所以为此目的声明一个结构不是一个有效的答案。
- 我也搜索了宏,但我对它们的可能性只有最少的了解。
如果我有这个,我甚至可以写一个变元函数,然后只需输入一个简洁的
printVars(myVar, myOtherVar, myThirdVar)
字符串
得到一个漂亮的日志,这将是一个真正节省时间:
myVar: 20
myOtherVar: MyEnum.myCase
myThirdVar: "Arthur"
型
1条答案
按热度按时间i86rm4rw1#
如果你不介意使用宏,你可以写一个独立的表达式宏,如下所示:
字符串
将其添加到
providingMacros
列表中,并像这样声明:型
使用方法:
型