草庐IT

non-struct

全部标签

struct - 用另一个结构分配结构

我有一个RegistrationRequest结构:typeRegistrationRequeststruct{Email*stringEmail2*stringUsername*stringPassword*stringNamestring}其中Email2是再次输入的电子邮件值,以验证用户输入的内容是否正确。我还有一个用户结构:typeUserstruct{Email*stringUsername*stringPassword*stringNamestring}当然,Email2在注册之后就不需要存储了。所以我有两个变量:req和u-每个结构一个。是否可以将req结构分配给u结构,

struct - 去解析yaml文件

我正在尝试使用Go解析yaml文件。不幸的是,我无法弄清楚如何。我的yaml文件是这样的:---firewall_network_rules:rule1:src:blablabla-hostdst:blabla-hostname...我有这个Go代码,但它不起作用:packagemainimport("fmt""io/ioutil""path/filepath""gopkg.in/yaml.v2")typeConfigstruct{Firewall_network_rulesmap[string][]string}funcmain(){filename,_:=filepath.Abs(

pointers - struct中的指针和值有什么区别?

给定以下结构:typeExpstruct{fooint,bar*int}在结构中使用指针或值时,性能有何不同。是否有任何开销或者这只是Go编程的两个学校?我会使用指针来实现链式结构,但这是我们必须在结构中使用指针以获得性能的唯一情况吗?PS:在上面的结构中,我们讨论了一个简单的int,但它可以是任何其他类型(甚至是自定义类型) 最佳答案 使用对您的程序最实用的表单。基本上,这意味着如果值是nil有用,则使用指针。从性能的角度来看,原始数字类型的复制总是比取消引用指针更有效。如果更复杂的数据结构小于一两个缓存行(对于x86CPU来说,

struct - 复合文字中缺少类型

typeAstruct{Bstruct{SomestringLenint}}简单的问题。如何初始化这个结构?我想做这样的事情:a:=&A{B:{Some:"xxx",Len:3}}预计我会收到一个错误:missingtypeincompositeliteral当然,我可以创建一个单独的结构B并以这种方式对其进行初始化:typeBtypestruct{SomestringLenint}typeAstruct{BBtype}a:=&A{B:Btype{Some:"xxx",Len:3}}但它没有第一种方法那么有用。是否有初始化匿名结构的快捷方式? 最佳答案

go - 是否使用指针定义golang struct函数

有人可以向我解释为什么在您执行此操作时附加到数组有效:func(s*Sample)Append(namestring){d:=&Stuff{name:name,}s.data=append(s.data,d)}Fullcodehere但当你这样做时:func(sSample)Append(namestring){d:=&Stuff{name:name,}s.data=append(s.data,d)}您是否有任何理由要使用第二个示例。 最佳答案 如前所述intheFAQ我应该在值或指针上定义方法吗?func(s*MyStruct)p

struct - 在 Go 中初始化嵌入式结构

我有以下struct,其中包含一个net/http.Request:typeMyRequeststruct{http.RequestPathParamsmap[string]string}现在我想在下面的函数中初始化匿名内部结构http.Request:funcNew(origRequest*http.Request,pathParamsmap[string]string)*MyRequest{req:=new(MyRequest)req.PathParams=pathParamsreturnreq}如何使用参数origRequest初始化内部结构? 最佳答

struct - 错误 : struct Type is not an expression

使用struct和一个应该打印出结构元素的函数,我编写了这个简单的程序:packagemainimport"fmt"typeSalutationstruct{namestringgreetingstring}funcGreet(salutationSalutation){fmt.Println(salutation.name)fmt.Println(salutation.greeting)}funcmain(){vars=Salutations.name="Alex"s.greeting="Hi"Greet(s)}当我运行它时,我得到错误go:16:typeSalutationisno

struct - 嵌套结构初始化文字

我该怎么做:typeAstruct{MemberAstring}typeBstruct{AAMemberBstring}...b:=B{MemberA:"test1",MemberB:"test2",}fmt.Printf("%+v\n",b)编译得到:“结构文字中的未知B字段'MemberA'”当我提供这样的文字结构成员值时,如何初始化MemberA(来自“父”结构)? 最佳答案 在初始化时,匿名结构仅在其类型名称下已知(在您的情况下为A)。与结构关联的成员和函数仅在实例存在。您必须提供一个有效的A实例来初始化MemberA:b:

pointers - 调用 struct 函数给出 "cannot refer to unexported field or method"

我有一个类似这样的结构:typeMyStructstruct{Idstring}和功能:func(m*MyStruct)id(){//doingsomethingwithidhere}我还有另一个这样的结构:typeMyStruct2struct{m*MyStruct}现在我有一个函数:funcfoo(str*MyStruct2){str.m.id()}但我在编译时遇到错误:str.m.idundefined(cannotrefertounexportedfieldormethodmypackage.(*MyStruct)."".id如何正确调用这个函数?

去跑: cannot run non-main package

这里是简单的Go应用程序。如果我运行以下代码,我会收到“运行:无法运行非主包”错误。packagezsdfsdfimport("fmt")funcMain(){fmt.Println("sddddddd")}要修复它,我只需要将包命名为main。但我不明白为什么我需要这样做。我应该可以随意命名包。另外一个问题,我知道main函数是程序的入口点,你需要它。否则它将无法正常工作。但是我看到一些没有main函数的代码仍然有效。点击此链接,页面底部的示例没有使用包main和main函数,它仍然有效。只是好奇为什么。https://developers.google.com/appengine/