这个例子对于去掉我正在做的自定义 xml 解析有点简单,但我遇到了这个问题:
package main
import (
"encoding/xml"
"fmt"
)
type Foo string
func main() {
var f Foo
var b string
c := xml.CharData{}
f = string(c)
b = string(c)
fmt.Println(b)
}
//prog.go:15: cannot use string(c) (type string) as type Foo in assignment
Foo 是一种字符串,我缺少什么来将 xml.CharData 的字符串表示形式(这是有效的,在许多解码器中使用它)转换为自定义类型的字符串?
最佳答案
将c
直接转换为Foo
。
f = Foo(c)
Playground :http://play.golang.org/p/WR7gCHm9El
编辑:这是有效的,因为 Foo
是一个字符串。 Foo
是一种新的独特派生类型;它的基本类型是 string
。您可以类似地为任何现有类型创建派生类型。每个派生类型都是不同的,因此您可以获得类型安全。转换必须是显式的。
关于string - 将字符串转换为 Foo(类型字符串),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27045769/