gpt4 book ai didi

swift - 具有无法覆盖的默认值的文件和行参数

转载 作者:行者123 更新时间:2023-11-28 07:44:57 25 4
gpt4 key购买 nike

我有这个功能:

func debug(_ value: Any, file: StaticString = #file, line: UInt = #line) {
print(String(describing: value) + " at \(file):\(line)")
}

这将打印出作为 value 传入的对象,以及调用调试函数的文件和行。

在 Swift 中有什么方法可以防止在代码中指定 fileline 参数,但仍然让它们打印正确的值?

即我怎样才能阻止它编译?

debug("LIES", line: 1000000)

最佳答案

我认为这是不可能的。参数的默认值为将调用站点的文件和行号传递给的唯一机制函数,并且始终可以通过显式提供这些参数来覆盖。

请注意,即使可能,调用者仍然可以使用 #sourceLocation 指令作弊:

#sourceLocation(file: "nowhere", line: 10000)
debug(123) // 123 at nowhere:10000

关于swift - 具有无法覆盖的默认值的文件和行参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51364021/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com