草庐IT

结构化并发

全部标签

结构的匿名方法

Go是否支持结构的匿名方法?如果支持,您如何创建和调用它们?这是我一直在努力工作的代码,但我不确定Go(go版本go1.1.2linux/amd64)是否支持结构的匿名方法。packagemainimport("fmt")typePersonstruct{namestringageint}func(pPerson)get_details()string{returnfmt.Sprintf("Name->%s,Age->%d",p.name,p.age)}funcmain(){p:=Person{name:"G4143",age:5}//simpleanonymousfunctionwh

go - 当我的值为结构类型时如何填充 map[string] interface{}?

我想构建一个与下面的PurchaseOrder结构等效的JSON:typePurchaseOrderstruct{StatestringFsmNamestringSupplierstringReceiverstringTradeItemsmap[string]PRTradeItem}typePRTradeItemstruct{Quantityfloat64`json:"quantity"`Supplierstring`json:"supplier"`Receiverstring`json:"receiver"`PricePerUnitfloat64`json:"pricePerUnit

go - 从另一个包引用结构域

我具有以下文件夹结构:.├──Makefile├──README.md├──myproject│  ├──handlers│  │  └──authorize_handler.go│  ├──models│  │  ├──id_token.go│  ├──server.go我尝试从authorize_handler.go引用IdToken.idType文件中的id_token.go字段。authorize_handler.gopackagehandlersimport("encoding/json""log""net/http""myproject/models")funcAuthor

go - 如何在结构中嵌入初始化变量?

有没有什么好的方法可以将初始化的结构变量嵌入到另一个结构中?考虑以下情况:typeAccountstruct{AdminUser,AdminPassstring}const(acc1:"account_user",pass:"111222")varAccountDef=Account{AdminUser:"acc1",AdminPass:"pass1"}typeLoginstruct{Acc*AccountDefUsername,Password,Tokenstring}varLoginDef=Login{Token:"adaasdasddas1123"}我想在Login中重用Acco

go - 如何从 Go 中的结构 slice 中删除结构?

如何从用户定义结构的用户定义slice中删除用户定义结构?像这样:typesomeStructstruct{someOtherStruct*typeOfOtherStructsomeIntintsomeStringstring}varsomeStructs[]someStructfuncsomeFunc(sssomeStruct,ssSlicesomeStructs){//..wanttoremovessfromssSlice}我可能应该循环直到找到索引,然后将其删除。但是我该如何比较这些结构呢? 最佳答案 您找到该元素并创建一个减

struct - golang 从结构中返回第一个字段

我正在尝试返回给定一个属性的所有用户信息,该属性可以是user_id、电子邮件或名称。u:=User{Email:"goda@go.com"})k:=User{Name:"john"}ReturnUserInfo(u)ReturnUserInfo(k)我调用传递一个只有一个字段的用户结构的函数。然后我想在不明确说出电子邮件的情况下解析该字段。最后,我通过传递隐式字段(user_id或电子邮件等)获取用户信息funcReturnUserInfo(uUser)(yUser){//Retrievefirstfieldfromuandsetthemtofieldandvalue.//NOTex

go - 无法在 golang 中将数据从映射正确解码到结构

我目前无法将map中的数据正确解码为结构。以下是代码片段(BriefCodeatplayground):请求您提供在解码数据时获取默认值的原因。packagemainimport("fmt""encoding/json""os")funcmain(){fmt.Println("Hello,playground")typePDPOfferstruct{cart_valueint`json:"cart_value"`discount_amount_defaultint`json:"discount_amount_default"`max_discountstring`json:"max_d

multithreading - sync.Mutex在并发Golang程序中是如何工作的

在Go中使用并发程序时,我们使用varmutexsync.Mutex然后如果我们必须编写执行一些同步代码块,我们调用mutex.Lock()和mutex.Unlock()。现在我在这里有一些疑问:1)是否只有一个mutex实例,即如果mutex用于锁定CodeBlockA的操作,同时还有其他一些goroutineB必须将它用于其他一些也使用mutex的CodeBlockB,goroutineB是否会被阻塞,直到goroutineA解除互斥体。2)是否有可能我们可以有更多的静音实例来保护它们自己的专用代码块。 最佳答案 在编写示例代码

go - 并发写入包含 Golang 中另一个 Map 的 Map

在Golang中,我们必须将并发更改同步到Map。如果我的map包含另一个像这样的map:map[string]map[string]*CustomStruct..在写东西的时候我必须在所有这些中使用Lock吗?如果我将一些东西写入内部Map->外部Map也会被更改,所以我仍然必须同步外部Map的更改。如果我锁定外部Map的更改->没有其他人可以写入内部Map->锁定内部Map没有意义。我是对的还是它以不同的方式工作并且我必须锁定所有map? 最佳答案 我的理解是这里没有任何硬性规定。例如,您可以通过一个甚至没有存储在map上的互斥

pointers - 指向结构的指针更改未反射(reflect)在调用者中

我将一个指向结构的指针传递给另一个名为someFunc()的函数并在那里进行更改,但在本例中,它不会反映在调用方函数中。typeSlotstruct{f1intf2stringf3[]*string}funcNewSlot(f1,f2){return&Slot{f1:f1,f2:f2,f2:make([]*string,0)}}funcmain(){slots:=&Slots{}scanner:=bufio.NewScanner(os.Stdin)forscanner.Scan(){s:=scanner.Text()sarr:=strings.Split(s,"")fmt.Printl