Swift中的访问打印日志变量名称

Swift中的访问打印日志变量名称,第1张

概述我在这个主题上阅读的大部分内容让我相信目前这是不可能的,但我很好奇是否有人知道如何在 Swift中打印变量的实际名称. 我的用例专门用于调试/记录,以帮助准确地跟踪保护语句中的错误源.我希望我不需要手动传入一个字符串,只能在函数签名中有一个默认参数.此外,由于守护语句是一种常见的Swift约定,对于我自己和其他可能做类似这样的事情,这可能比每次执行此 *** 作时节省大量时间并且更可靠… 或多或少我正在考 我在这个主题上阅读的大部分内容让我相信目前这是不可能的,但我很好奇是否有人知道如何在 Swift中打印变量的实际名称.

我的用例专门用于调试/记录,以帮助准确地跟踪保护语句中的错误源.我希望我不需要手动传入一个字符串,只能在函数签名中有一个默认参数.此外,由于守护语句是一种常见的Swift约定,对于我自己和其他可能做类似这样的事情,这可能比每次执行此 *** 作时节省大量时间并且更可靠…

或多或少我正在考虑的是 – 以及我可能会在guarded()函数中使用#file,#line等其他信息

extension Optional {    func guarded(variablename: String = #variablename,caller: String = #function) -> Optional {        if self == nil {            log.warning(message: "Guard statement Failed to unwrap variable: \(variablename) in function: \(function)")        }        return self    }}

在这种情况下哪个会有用:

func sampleFunction(_ funkyVariable: String?,boringVariable: String?) {    guard let funkyVariable = funkyVariable.guarded(),let boringVariable = boringVariable.guarded() else {         // Custom handling of else condition if necessary        return     }    print("\(funkyVariable) and \(boringVariable) aren't nil!")}

然后,当它被称为:

sampleFunction(funkyVariable: "string",boringVariable: nil) // Results in logger message: "Guard statement Failed to unwrap variable: boringVariable in function: sampleFunction"

很想看看你是否有任何超出人工努力的想法.谢谢!

解决方法 你不能.变量名是一种抽象,严格来说是程序员.编译器只处理寄存器和内存地址.为了使这样的事情起作用,它需要是一个明确的语言特征,它(当前)不是 总结

以上是内存溢出为你收集整理的Swift中的访问/打印/日志变量名称全部内容,希望文章能够帮你解决Swift中的访问/打印/日志变量名称所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1003191.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-22
下一篇 2022-05-22

发表评论

登录后才能评论

评论列表(0条)

保存