美文网首页
Golang包成员(函数/结构/字段)导出问题

Golang包成员(函数/结构/字段)导出问题

作者: 牛奶言兼 | 来源:发表于2024-09-04 16:51 被阅读0次

学习Golang中,对多文件/多模块的使用时,出现问题:

implicit assignment to unexported field a in struct literal of type

或者在使用函数时,习惯性的对练习函数命名为foobar等:

package demo

import (
    "fmt"
)

func foo() string {
    fmt.Println("demo.foo")
}

但在外部使用该模块demo 时,却找不到函数定义,执行报错:

undefined: demo.foo

但换成结构体

package demo

import (
    "fmt"
)

type MyStruct struct {
   a int
}

func foo() string {
    fmt.Println("demo.foo")
}

外部可以获取到demo.MyStruct但是却拿不到成员字段定义,出现:

implicit assignment to unexported field a in struct literal of type

通过查询得知,Golang中如果要导出标识符(identifier)需要遵循规则:

An identifier may be exported to permit access to it from another package. An identifier is exported if both:

  1. the first character of the identifier's name is a Unicode uppercase letter (Unicode character category Lu); and
  2. the identifier is declared in the package block or it is a field name or method name.

All other identifiers are not exported.

至此,问题得到完整可靠解决。

对于刚接触Golang的Coder,建议多阅读The Go Programming Language Specification,每个版本都会有一些约定变化,建议关注Release History - The Go Programming Language (google.cn) 以及时适应版本升级带来的差异。

相关文章

  • 第3章:对象和类型

    #1. 类和结构 #2. 类2.1 数据成员2.2 函数成员2.3 只读字段 #3. 匿名类型 #4. 结构4.1...

  • EasyPoi获取字段问题定位

    一、 问题 项目中使用EasyPoi工具开发excel导出功能,导出类中有如下结构字段:"X_XXX_XXX",字...

  • Oracle中如何导出存储过程、函数、包和触发器的定义语句?如何

    Oracle中如何导出存储过程、函数、包和触发器的定义语句?如何导出表的结构?如何导出索引的创建语句? QQ群里有...

  • 每天学一点Thinking in java: 4 字段和方法

    字段(fields)和方法(methods) 数据成员(data members)(有时也叫“字段”)以及成员函数...

  • rpc

    golang的rpc必须符合4个条件: 结构体首字母大写。跨域访问 函数名首字母大写。 序列化导出 函数第一个参数...

  • golang如何访问一个结构体(struct)的未导出域(fie

    golang如何访问一个结构体(struct)的未导出域(field) 问题的引出 在做fabric调试的时候,经...

  • go 结构体

    结构体可见性规则 如果想使用别的包的函数,结构体,结构体成员, 函数名,类型名... 首字母必须要大写, 如果首...

  • 2017.10.24

    访问修饰符 struct 结构名{ 定义结构成员 常量;字段;方法属性事件索引器运算符重载带参数构造函数嵌套结构...

  • 2019-03-20——Java反射 Member

    Member接口用来表示“类”中的一个成员(字段或方法)或构造函数。 Member体系继承结构 声明的方法

  • 第六章 结构体

    Go语言中结构体是带有成员的复合类型。结构体成员是由一系列成员变量构成,这些成员变量也被称为“字段”。字段有以下特...

网友评论

      本文标题:Golang包成员(函数/结构/字段)导出问题

      本文链接:https://www.haomeiwen.com/subject/oktrljtx.html