- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
我有这样的结构:
type MyStruct struct {
Id string
}
和函数:
func (m *MyStruct) id() {
// doing something with id here
}
我还有一个这样的结构:
type MyStruct2 struct {
m *MyStruct
}
现在我有一个函数:
func foo(str *MyStruct2) {
str.m.id()
}
但是我在编译时遇到错误:
str.m.id undefined (cannot refer to unexported field or method mypackage.(*MyStruct)."".id
如何正确调用这个函数?
最佳答案
来自 http://golang.org/ref/spec#Exported_identifiers :
An identifier may be exported to permit access to it from another package. An identifier is exported if both:
- the first character of the identifier's name is a Unicode upper case letter (Unicode class "Lu"); and
- the identifier is declared in the package block or it is a field name or method name.
所以基本上只有以大写字母开头的函数/变量才能在包外使用。
例子:
type MyStruct struct {
id string
}
func (m *MyStruct) Id() {
// doing something with id here
}
//then
func foo(str *MyStruct2) {
str.m.Id()
}
关于pointers - 调用结构函数给出 "cannot refer to unexported field or method",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57866159/
我希望在代码中使用结构 Dish 导出为 Dish。当未导出结构 dish 并且看不到其中未导出的字段时,我预计程序会失败。 (好的,我可以看到未导出的字段出现在导出的结构中,但即使这样似乎也是错误的
我尝试模拟一些结构进行单元测试,并使用以下 site 我写了以下内容: 实干家 package user import "errors" type Doer interface { Do(in
package main main.go import ( "fmt" "practice/pkg" ) func main() { mk := pkg.MustKey{map
我有这样的结构: type MyStruct struct { Id string } 和函数: func (m *MyStruct) id() { // doing someth
我有这样的结构: type MyStruct struct { Id string } 和函数: func (m *MyStruct) id() { // doing someth
我在 Go 中尝试了这段代码: type Agent struct { name string // Not exported categoryId int // Not exp
我有一个类似这样的结构: type MyStruct struct { Id string } 和功能: func (m *MyStruct) id() { // doing so
从服务器接收的字节缓冲区中,我想复制结构。 缓冲区的格式是固定大小字节,如下所示。 00000000 83 27 48 12 6c 00 00 00 01 02 00 00 01 01 00 02
我刚刚开始使用 javascript 模块(而不是尝试 XPCOM 组件)编写我的第一个 FF 扩展,但我不清楚加载 jsm 时会发生什么。 问:文件范围是否充当非导出符号的闭包,或者未引用的符号只是
我有以下路线: m.Post("/users", binding.Bind(models.User{}), func(user models.User, r render.Render) 当我尝试执行
在 Android 和 Linux 下使用传统的 sysfs GPIO 过程的第一步是脚趾 export您要使用的特定 GPIO 引脚。当您完成 GPIO 引脚到 unexport它。 我一直在寻找关
我是一名优秀的程序员,十分优秀!