Вы можете использовать fmt.Sscanf
, которая является строковой и текущей версией fmt.Scan
:
package main
import (
"fmt"
)
func main() {
str1 := "Connection to %s is down and error %d is thrown"
str2 := "Connection to DataBase is down and error 401 is thrown"
var s string
var d int
_, err := fmt.Sscanf(str2, str1, &s, &d)
if err != nil {
panic(err)
}
fmt.Println(s, d)
}
детская площадка: https://play.golang.org/p/5g5UcrHsunM
Примечание.,Если ошибка от Go, весьма вероятно, что она предоставляет данные внутри ошибки, поэтому вам не нужно анализировать их вручную.И если у вас есть контроль над ошибкой, лучше хранить данные внутри.