gpt4 book ai didi

macros - Go:用于编写测试代码的类似 C 的宏

转载 作者:IT王子 更新时间:2023-10-29 02:05:50 24 4
gpt4 key购买 nike

在写测试代码的时候,我做了很多这样的

if (!cond) {
t.Fatal("error message")
}

这有点乏味。所以我想实现以下目标

CHECK(cond, "error message")

所以我尝试了这个

func CHECK(t *testing.T, cond bool, fmt string, a ...interface{}) {
if !cond {
t.Fatal(fmt, a)
}
}

如果它是一个 C 宏,它会完美地工作。但是在Go中,失败的行号是错误的。

有解决办法吗?

最佳答案

遗憾的是你不能那样做。

解决方法是自己获取行/函数,类似于 https://stackoverflow.com/a/25954534/145587 中的跟踪函数.

关于macros - Go:用于编写测试代码的类似 C 的宏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26096496/

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