我是Go的新手,所以我很抱歉这个noob问题。
在JavaScript console.log(window)
中返回window
内的所有对象。在PHP var_dump(new DateTime())
中返回DateTime()
内的所有对象。
Go中是否有一个函数会返回给定对象的所有对象?例如,如果给出Println
,则应返回fmt
。
答案 0 :(得分:2)
尝试在终端中执行go doc fmt
以生成“fmt”包的说明及其导出的功能列表,或引用fmt
package documentation处的https://golang.org。在go中,与大多数其他静态/编译语言一样,用户需要参考描述编程语言及其库的文档(或 docs )。将此与一些dynamic/scripting languages进行对比,这通常可以轻松查询任何对象以发现其可用属性。
在运行时,您可以使用%#v
格式动词生成任意值的有用打印输出,以生成值的go语法表示,例如
xs := []int{1, 2, 3}
fmt.Printf("OK: xs=%#v\n", xs)
// OK: xs=[]int{1, 2, 3}
请注意,程序包“fmt”不是go语言中的值,因此无法在运行时打印。
答案 1 :(得分:1)
Go没有对象,但我们有自定义类型和接口,我们可以将属性,函数和其他类型附加到。
你具体要做什么?如果您正在寻找var_dump
:
fmt.Println
someErr := fmt.Errorf("custom type error")
fmt.Println(someErr)
Println
格式使用其操作数的默认格式并写入标准输出。
fmt.Printf
someErr := fmt.Errorf("custom type error")
fmt.Printf("This is an error:%v A num: %v A str", someErr, 19, "Stackoverflow")
Printf
根据格式说明符格式化并写入标准输出。
fmt.Sprintf
someErr := fmt.Errorf("custom type error")
// someStr now contains the string formatted as shown below
someStr := fmt.Sprintf("This is an error:%v A num: %v A str", someErr, 19, "Stackoverflow")
Sprintf
根据格式说明符进行格式化并返回结果字符串。
以下是输出var数据时个人偏好的示例: https://play.golang.org/p/8dpeE-fray_J
我希望这有帮助!
答案 2 :(得分:1)
在Go中可以做类似的事情,但不适用于所有人。
func main() {
//arrays
a := []int{1,2,3,4}
fmt.Printf("%v\r\n", a) //print [1 2 3 4]
//maps
b := map[string]int{
"a":1,
"b":2,
}
fmt.Printf("%v\r\n", b) //print map[a:1 b:2]
//structs
c := struct{
A int
B int
}{1,2}
d := struct{
C struct{
A int
B int
}
D int
}{c,2}
fmt.Printf("%v\r\n", d) //print {{1 2} 2}
}
见:https://play.golang.org/p/vzlCsOG497h
如果您传递 fmt 发生错误,因为它是一个包。错误是:
Error: use of package fmt without selector
我希望这也有所帮助!