当前位置: 首页 > news >正文

【GO学习笔记 go基础】访问控制

  • Go 没有显式的 privatepublic 关键字,通过首字母大小写进行访问控制标识。
  • 在 Go 中,名称首字母大写表示这个名称(变量、函数、结构体等)是 导出的,可以在包外部被访问和使用。

1. 导出函数

     package examplefunc SetupKeyValueStore() {}// 导出函数,包外部可见func setupHelper() {}// 未导出函数,仅包内部可见

2. 导出结构体

    package exampletype Config struct { // 导出结构体Port     int    // 导出字段Username string // 导出字段password string // 未导出字段}

3. 导出接口

     type Database interface { // 导出接口Connect() error       // 导出方法disconnect() error    // 未导出方法}

4. 导出常量

     package exampleconst DefaultTimeout = 30 // 导出常量const defaultRate = 100   // 未导出常量

5. 导出变量

     package examplevar Version = "1.0.0" // 导出变量var configPath = "/etc/config" // 未导出变量

6. 导出包初始化函数

  • Go 规范上没有规定导出的初始化函数,但惯例上有时会使用特定的大写函数名来创建包的实例或配置,例如 NewOpenInit,这些函数通常返回一个导出的实例(比如结构体、接口实现等)。
// example.go
package exampleimport "fmt"// 定义一个结构体
type Config struct {Host stringPort int
}// 使用 New 函数来创建 Config 的实例
func New(host string, port int) *Config {return &Config{Host: host,Port: port,}
}// 一个方法,用于打印配置
func (c *Config) Print() {fmt.Printf("Host: %s, Port: %d\n", c.Host, c.Port)
}
  • 使example包:
// main.go
package mainimport ("example"
)func main() {// 使用 New 函数创建 Config 实例config := example.New("localhost", 8080)// 调用 Print 方法config.Print()
}

http://www.mrgr.cn/news/62675.html

相关文章:

  • vue vxeui 上传组件 vxe-upload 全局配置上传方法,显示上传进度,最完美的配置方案
  • SpringBoot旋律线:Web音乐网站构建
  • (C#面向初学者的 .NET 的生成 AI) 第 2 部分-什么是 AI 和 ML?
  • 使用 BERT 和逻辑回归进行文本分类及示例验证
  • 玩客云刷机教程Armbian_5.67把你的玩客云改造成一个小型的Linux服务器(保姆级教程)
  • centos7 zabbix监控nginx的pv和uv和status_code
  • 局域网实时监控电脑屏幕软件有哪些?8款优秀的局域网监控app!不看巨亏!
  • 使用Kubernetes自动化部署和管理容器化应用
  • 正则表达式(Regular Expressions)
  • zynq PS端跑Linux响应中断
  • 机器学习的模型评估与选择
  • Nodes —— Utility
  • 24下软考初级信息系统运行管理员,提供一条能过的野路子
  • 两数之和笔记
  • 通过js控制修改css变量
  • YOLOV8代码分析———持续更新中
  • LivePortrait代码调试—给图片实现动态表情
  • 2小时,我搭建了一整套车间生产看板
  • 做反向代购,采购订单应该怎么批量管理?
  • 一秒变高手!MODBUSTCP-DEVICENET网关与AB 1791D模块的完美搭档秘诀!
  • 内容聚合与RSS技术在信息时代的应用与发展分析
  • C语言日记 2024年10月30日
  • GenAI对就业市场的影响:哪些行业将受益?
  • 状态模式:封装对象状态并改变行为的设计模式
  • PySpark任务提交
  • Qt 坐标系统与坐标变换