如何引用字符串中的变量,如在Golang的测试中可能出现的情况?
以下是测试中的工作:如何引用字符串中的变量,如在Golang的测试中可能出现的情况?,go,Go,以下是测试中的工作: if actualKey != expectedKey { t.Fatalf("Failed. Actual: %q. Expected: %q", actualKey, expectedKey) } 在主代码中: m["Keyword "+kw+" found on "+url] = 0 ,但这失败了: m["Keyword %q found on %q", kw, url] = 0 正如@JimB所建议的,可以使用。以下工作: msg := fmt.Spr
if actualKey != expectedKey {
t.Fatalf("Failed. Actual: %q. Expected: %q", actualKey, expectedKey)
}
在主代码中:
m["Keyword "+kw+" found on "+url] = 0
,但这失败了:
m["Keyword %q found on %q", kw, url] = 0
正如@JimB所建议的,可以使用。以下工作:
msg := fmt.Sprintf("Keyword %q found on %q", kw, url)
m[msg] = 0
问题
- 将这种方法称为变量引用是否正确?如果为假,它叫什么
- 这是最简洁的实现方式吗
type Result struct {
Keyword, URL string
}
然后像这样使用它:
m := make(map[Result]int)
m[{"keyword1", "url1"}] = 0
你只是在寻找字符串格式吗@吉米,谢谢你。它起作用了。我已经更新了问题。您能否发布答案并回答其他问题?可能重复:。什么是字符串格式?--“格式化”?(这就是
Fatalf
,Printf
,Sprintf
末尾的f
所表示的意思)。您认为最简洁的实现方式是什么?你想写你自己的格式化程序吗?@JimB不。我不想重新发明轮子msg:=fmt.Sprintf(“在%q上找到了关键字%q”,kw,url)
@JimB在字符串中调用变量就是字符串格式?“hello”+var的名称与fmt.Sprintf相同(“hello%q”,var)?