エラー内容
Goで1.21から1.24にあげようとした時に下のようなエラーが出るようになりました。
Error: ./main.go:98:11: non-constant format string in call to (****).Infof
原因
エラーが出ていた箇所は以下のような感じにに書かれていました。
fmt.Printf(`test-{data}`)
TypeScript等でよくみる変数を文字列として入れて表示する処理です。
この部分でエラーが起きていました。
解決方法
本来printfは下のようにフォーマット修飾子とセットで使います。
fmt.Printf("test-%v",data)
Go1.24からはPrintfでgo vetを使った静的解析が強化されており、エラーのように文字列に変数を入れ込む形ではなく、第二引数に変数を入れたり、フォーマット修飾子で表さないといけないようになりました。
ある意味複数の書き方ができるとメソッドの利用用途がわからなくなるので、初学者にとってはありがたいかもしれないなと感じました。