Tag:

为什么不能按插入顺序迭代映射?

我有一个导航栏作为地图: var navbar = map[string]navbarTab{ } 其中navbarTab具有各种属性,子项等。 当我尝试渲染导航栏(与for tabKey := range navbar ),它出现在一个随机的顺序。 我知道range随机sorting时运行,但似乎没有办法得到一个有序列表的键或迭代在插入顺序。 这似乎是荒谬的,这是不可能的。 游乐场链接在这里: http : //play.golang.org/p/nSL1zhadg5虽然它似乎不performance出相同的行为。 如何在不破坏插入顺序的情况下遍历这个映射?

在Golang中调用所有具有特殊前缀或后缀的函数

我有一个与播种名称的包: package seeder import "fmt" func MyFunc1() { fmt.Println("I am Masood") } func MyFunc2() { fmt.Println("I am a programmer") } func MyFunc3() { fmt.Println("I want to buy a car") } 现在我想用MyFunc前缀调用所有函数 package main import "./seeder" func main() { for k := 1; k <= 3; k++ { seeder.MyFunc1() // This call three times MyFunc1 } […]

为什么我不能将* Struct分配给*接口?

我只是通过Go游览 ,我对指针和接口感到困惑。 为什么这个Go代码不能编译? package main type Interface interface {} type Struct struct {} func main() { var ps *Struct var pi *Interface pi = ps _, _ = pi, ps } 即如果Struct是一个Interface ,为什么不*Struct一个*Interface ? 我得到的错误消息是: prog.go:10: cannot use ps (type *Struct) as type *Interface in assignment: *Interface is pointer to interface, not interface

逐行阅读文件

Go无法findfile.ReadLine函数。 我可以想出如何快速写一个,但只是想知道我是否在这里忽略了一些东西。 如何逐行读取文件?

如何检查地图中是否包含密钥?

我知道我可以遍历一个地图m, for k, v := range m { … } 并寻找一个关键,但有一个更有效的方式来testing一个密钥的存在在地图中? 谢谢。 我无法在语言规范中find答案。

Golang中的循环依赖和接口

我是一个很长的Python开发人员。 我正在尝试Go,将现有的Python应用程序转换为Go。 它是模块化的,对我来说真的很好。 在Go中创build相同的结构后,我似乎陷入循环导入错误,比我想要的要多得多。 在Python中从来没有任何import问题。 我甚至从来没有使用导入别名。 所以我可能有一些循环import,这在python中是不明显的。 我其实觉得很奇怪 无论如何,我迷路了,试图在Go中解决这些问题。 我已经读过,接口可以用来避免循环依赖。 但我不明白如何。 我也没有find任何这方面的例子。 有人可以帮我吗? 目前的python应用程序结构如下: /main.py /settings/routes.py contains main routes depends on app1/routes.py, app2/routes.py etc /settings/database.py function like connect() which opens db session /settings/constants.py general constants /apps/app1/views.py url handler functions /apps/app1/models.py app specific database functions depends on settings/database.py /apps/app1/routes.py app specific routes /apps/app2/views.py url handler functions […]

在golang中parsingdatestring

我试着在lang中parsingdatestring“2014-09-12T11:45:26.371Z”。 码 layout := "2014-09-12T11:45:26.371Z" str := "2014-11-12T11:45:26.371Z" err, t := time.Parse(layout , str) parsing时间“2014-11-12T11:47:39.489Z”:月份超出范围 我得到这个错误。 如何parsing这个datestring?

我的结构不是编组成json

我在Mac OS X 10.8.2上使用Go 1.0.3,我正在尝试使用json软件包,试图将一个结构编组为json,但我一直得到一个空的{} json对象。 err值是零,所以根据json.Marshal函数没有什么错,结构是正确的。 为什么发生这种情况? package main import ( "encoding/json" "fmt" ) type Address struct { street string extended string city string state string zip string } type Name struct { first string middle string last string } type Person struct { name Name age int address Address phone string } func […]