Go是否允许将任何类型的数据转换为[] byte?

问题描述

在下面的代码中,from tkinter import * from tkinter import ttk root = Tk() def select(event): #the function to get triggered each time you choose something if c.get() == lst[0]: #if it is the first item print('Option 1 is selected') elif c.get() == lst[1]: #if it is the second item print('Option 2 is selected') else: #or if it is the third item print('Option 3 is selected') lst = ['#1','#2','#3'] #creating option list c = ttk.ComboBox(root,values=lst,state='readonly') #creating a comboBox c.current(0) #setting first element as the item to be showed c.pack(padx=10,pady=10) #putting on screen c.bind('<<ComboBoxSelected>>',select) #the event that your looking for root.mainloop() 将任何类型的数据转换为json.Marshal

[]byte

但是语言不允许对所有类型的数据进行显式类型转换,例如bolB,_ := json.Marshal(true) intB,_ := json.Marshal(1) fltB,_ := json.Marshal(2.34) strB,_ := json.Marshal("gopher") slcD := []string{"apple","peach","pear"} slcB,_ := json.Marshal(slcD) mapD := map[string]int{"apple": 5,"lettuce": 7} mapB,_ := json.Marshal(mapD) res1D := struct { Page int Fruits []string }{ Page: 1,Fruits: []string{"apple","pear"},} res1B,_ := json.Marshal(res1D) 不起作用。

暗示,我无法实现b := []byte(true)(io.Reader)方法来将任何类型的数据源作为Read(p []byte) (n int,err error)进行流传输,字符串类型[]byte除外

strBytes := []byte(myStringData.str)如何将任何类型的数据转换为json.Marshal

解决方法

json.Marshal如何将任何类型的数据转换为[] byte?

json.Marshal 不能将任何类型的数据转换为[]byte,如软件包encoding / json的文档所述。

标题问题是:

Go允许将任何类型的数据转换为[] byte吗?

正式的答案是:是的,例如通过

func convertToBytes(interface{}) []byte {
    return nil
}

尽管这种转换是不可逆的,这使得这种转换对于任何实际目的都毫无用处。