String 将字符串转换为Foo(类型字符串)

String 将字符串转换为Foo(类型字符串),string,go,String,Go,这个示例对于我正在进行的自定义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:

这个示例对于我正在进行的自定义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)
游乐场:

编辑:这是因为Foo下面是一个字符串。Foo是一种新的、独特的派生类型;它的基类型是string。类似地,您可以为任何现有类型创建派生类型。每个派生类型都是不同的,因此您可以获得类型安全性。转换必须是显式的。

直接将c转换为Foo

f = Foo(c)
游乐场:

编辑:这是因为Foo下面是一个字符串。Foo是一种新的、独特的派生类型;它的基类型是string。类似地,您可以为任何现有类型创建派生类型。每个派生类型都是不同的,因此您可以获得类型安全性。转换必须是显式的