2014-11-20 67 views
1

這個例子將是一點點裸露去掉,我做的自定義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 

美孚是字符串類型,我缺少將xml.CharData的字符串表示形式(這是有效的,在許多解碼器中使用它)轉換爲字符串的自定義類型?

回答

4

直接將c轉換爲Foo

f = Foo(c) 

遊樂場:http://play.golang.org/p/WR7gCHm9El

編輯:這工作,因爲Foo是一個字符串下方。 Foo是一個新的和獨特的派生類型;其基本類型是string。您可以類似地爲任何現有類型創建派生類型。每種派生類型都是不同的,因此您可以獲得類型安全。轉化必須明確。