草庐IT

go-mocket

全部标签

go - 如何在函数中传递动态参数

我在做什么funcfoo(astring){}funcbar(b,cstring)typefnfunc(string)m:=map[string]fn{"a":"foo","b":"bar"}什么是输出当我这样调用函数时m["a"]("Hello")m["b"]("Hello","World")我得到一个错误,因为typefnfunc(string)这里fn有一个参数,但我在m["b"]("Hello","World")中传递了两个参数Error:[cannotuse(typefunc(string,string))astypefninmapvalue]我在找什么我想制作动态的type

go - golang程序退出时泄漏的内存是否被释放?

这个问题在这里已经有了答案:Isleakedmemoryfreedupwhentheprogramexits?(6个答案)关闭4年前。在您申请重复之前question,我已经阅读了所有这些答案,但我的问题是针对特定于golang的。用golang谚语Don'tcommunicatebysharingmemory;sharememorybycommunicating我想知道golang管理内存的方式是否有所不同

go - 打开新的控制台窗口

我可以使用哪些代码让我的golang程序可以打开一个新的控制台窗口?我有一个程序A正在运行程序B,因此程序B没有控制台窗口(stdin和stdout用于与程序A交互)。我希望程序B在新的控制台窗口(以及程序A的控制台窗口)中显示用户友好的信息,以便很容易看到正在发生的事情。 最佳答案 下面的代码可以在Ubuntu上运行,它是一个示例程序,除非您键入“新控制台”,否则它会回显输入,在这种情况下,它会在单独的控制台中再次执行。它通过执行:gnome-terminal-e请注意,这可能是特定于操作系统的,因为每个操作系统风格都有不同的打开

pointers - 检查 Go 中字符串指针的长度

如何找到来自结构的字符串指针的长度。目前正在写单元测试,想看看一个字符串指针是否小于250个字符。如果r是my并且myString是字符串指针。此代码无效:iflen(r.myString)>256{returnErrStringTooLong} 最佳答案 您应该解释为什么您的代码不正确,以及您收到的错误消息。如果它是一个指向字符串的指针,你应该用asterix*len(*r.myString) 关于pointers-检查Go中字符串指针的长度,我们在StackOverflow上找到一个

go - 如何避免 golang 函数在调用嵌入类型和嵌入类型之间具有不同的行为?

假设在第3方库中,我们有一个接口(interface)和一个实现该接口(interface)的结构。我们还假设有一个函数将ParentInterface作为参数,它对不同的类型有不同的行为。typeParentInterfaceinterface{SomeMethod()}typeParentStructstruct{...}funcSomeFunction(pParentInterface){switchx:=p.Type{caseParentStruct:return1}return0}在我们的代码中,我们想使用这个接口(interface),但要使用我们的增强行为,所以我们将它嵌

go - 解码嵌套在 JSON 对象中的数组

我在将此JSON数据解码为包含项结构的项的Goslice时遇到了一些问题:response:={"data":[{"name":"a","products":[{"name":"c"}]},{"name":"b","products":[{"name":"d"}]},{"name":"c","products":[{"name":"e"}]}]}这些是我的结构:typeItemstruct{NamestringProducts}typeProductsstruct{Namestring}slice基本上应该是“数据”属性(它是一个数组)转换为GoItemsslice的值。我尝试了以下方

go - 如何将 []byte 解码为 json 结构,该结构作为值存储在字符串类型的变量中?

注意:myjsonstruct是从数据库存储和读取的。为清楚起见硬编码myjsonstruct:=`{"fldA":"","fldB":"","fldC":""}`targetJsonString:=`{"fldA":"valueA","fldB":"valueB","fldC":"valueC","fldOther":"valueOther"}`现在,我想将targetJsonString解码到myjsonstruct中,以便填充myjsonstruct中的相应字段。请注意:myjsonstruct是一个“字符串”,不能在代码中编程。我在编码时不知道这个结构。它将在运行时作为字符串读

go - 结构声明中的文字值

假设我们有这样一个结构:typeFoostruct{onestringtwoint}是否可以为此声明文字值,例如:typeFoostruct{one"foobar"twoint}或typeFoostruct{onestringtwo5678}基本上对于某些对象,我们可能有一个字段的硬编码值。 最佳答案 不,Go不支持文字类型(alaTypeScript)。此外,它实际上不能,因为零值。每个类型都有一个零值,它总是存在并且总是可以分配给它。当声明一个类型的变量时,它们被隐式分配给它们类型的零值。对于整数(int,uint,int32,

go - item.(Tweet) 在 Golang 语言中,是什么意思?

我在Golang语言中找到了如下代码item.(Tweet)我已经知道每个变量都有一个方法。但是我不知道上面的代码。有人知道吗? 最佳答案 它叫做typeassertions.Atypeassertionprovidesaccesstoaninterfacevalue'sunderlyingconcretevalue.示例:varnuminterface{}=5varnumActualint=num.(int)fmt.Println(numActual)在上面的代码中,num是一个类型为interface{}的变量。它可以保存任何类

go - 何时使用 var 或 := in Go?

这个问题在这里已经有了答案:WhytherearetwowaysofdeclaringvariablesinGo,what'sthedifferenceandwhichtouse?(1个回答)varvs:=inGo(3个回答)2年前关闭。下面两个例子有什么区别吗?typeExamplestruct{}funcmain(){e:=Example{}}对比typeExamplestruct{}funcmain(){vareExample}有更好的吗?谢谢! 最佳答案 可能值得注意:使用:=当您需要创建一个带有特定值(不是零值)的变量时。