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

标签 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: 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/

相关文章:

Python:用整数替换分类后存储多个字典

针对部分字符串的 PHP 匹配数组

go - 无法将nil(无类型的nil值)转换为struct

使用 golang 的 MongoDB upsert 数组文档

c - 用 C 解析字符串 - 什么是正确的工具?

python - python函数中的反向文本

c - 如何知道现在正在读取的行数

git - 为团队构建 Go 子包

go - 如何在 syncmap.Map 具有类型接口(interface)时添加条目

go - 这个函数是否可能导致 goroutine 泄漏