我正在使用一个包,而不是返回 a string,它返回 aeconomy.ClassId你可以在这里看到我想将economy.ClassId它只是一个像“531569319”这样的数字字符串传递给一个接受字符串而不是字符串的函数,economy.ClassId所以有没有办法将此类型转换为字符串或否。谢谢。我知道您可能会喜欢,strconv.FormatUint()但我会为自定义类型使用什么。
3 回答
侃侃无极
TA贡献2051条经验 获得超10个赞
ClassId
被声明为type ClassId uint64
,因此尽管 a 与 aClassId
不完全相同uint64
,但它们具有相同的基础类型,因此您可以从一个转换为另一个。要将值转换x
为类型T
(在允许的情况下),请编写T(x)
. 所以,在你的情况下:
funcThatTakesAString(strconv.FormatUint(uint64(classId), 10))
Qyouu
TA贡献1786条经验 获得超11个赞
另一种可能更惯用的方法是使用fmt.Sprintf使用 Go 的格式字符串规范。
两个例子...
下面将 classId 转换为以 10 为基数的字符串:
classIDStr := fmt.Sprintf("%d", classId)
以下将其转换为字符串十六进制数,af 数字为小写:
classIDHex := fmt.Sprintf("%x", classId)
- 3 回答
- 0 关注
- 149 浏览
添加回答
举报
0/150
提交
取消