Go语言中处理UUID去除横杠时的类型错误问题求助
问题修正方案
错误原因
报错核心是uuid.NewSHA1()返回的是uuid.UUID类型结构体,并非字符串,而strings.Replace()的第一个参数要求是字符串类型,类型不匹配导致编译失败。
修正后的代码
package main import ( "fmt" "strings" "github.com/google/uuid" ) var namespace = uuid.NameSpaceURL var value = "abc" + "hello world" + "bow" var urls1 = []byte(value) func main() { fmt.Println("Generating UUIDs\n----------------") generate() } func generate() { var1 := uuid.NewSHA1(namespace, urls1) fmt.Println(var1) // 先将UUID转为字符串,再替换所有连字符 var2 := strings.ReplaceAll(var1.String(), "-", "") fmt.Println(var2) }
关键修改点
- 使用
var1.String()方法将uuid.UUID类型转换为标准带连字符的字符串格式 - 用
strings.ReplaceAll()替代strings.Replace(),更直观实现"替换所有匹配项"的需求(若坚持用strings.Replace(),需将最后一个参数改为-1,表示替换所有) - 用短变量声明
var2 := ...完成变量声明,避免未声明变量的编译错误
内容的提问来源于stack exchange,提问作者hare krshn
相关产品推荐
相关产品推荐

