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

Go 命名规范

内容整理仅为个人当做笔记使用,无论是对于内容对错还是其他问题都可以联系我进行修改。
同时发现内容不对的地方也欢迎各位大佬对我进行指指点点


1、项目名

当我们不清楚项目命名规则的,我们看看大佬的项目都是如何命名
例如:
“github.com/go-redis/redis”
“github.com/beego/beego/v2/server/web”
“github.com/gin-gonic/gin”
从上面的导包记录看首先确定的是项目名都是小写,然后看路径中的命名规律,也都是小写,如果是多个单词用-进行分割
具体规则何如应该不用多说了

总结:
1、全小写
2、-(减号)进行单词拼接


2、包名

包名一般和目录文件名一直
一般全为小写,要尽量地避免和标准库的包名相同
同时具有一定的意义最佳
例如:main、test、routers、xiaoyin …

总结:
1、全小写
2、短小精炼


3、文件名

跟包名的差不多,文件名中的字母还是都需要小写
如果文件名设计的单词比较多那么可以使用下划线 _ 进行拼接
例如:demo1_test.go、demo2_test.go、xiaoyin_code.go …

总结:
1、全小写
2、_(下划线)进行拼接


4、结构体

使用驼峰命名法、首字母大小写进行控制访问权限
例如:

type XiaoYin struct {

}

总结:
1、驼峰命名法
2、首字母大写(大驼峰) ==> public 可以被外部包访问
3、首字母小写(小驼峰) ==> private 不可以被外部包访问


5、接口

使用驼峰命名法、首字母大小写进行控制访问权限
例如:

type XiaoYin interface {

}

总结:
1、驼峰命名法
2、首字母大写(大驼峰) ==> public 可以被外部包访问
3、首字母小写(小驼峰) ==> private 不可以被外部包访问


6、变量名

使用驼峰命名法、首字母大小写进行控制访问权限
若变量类型为 bool 类型,则名称应以 has, is, can 或 allow 开头
例如:

    var mStr string
    var mTempi int
    var isClose bool

总结:
1、首字母大写 对应其他语言 public 可以被外部包访问
2、首字母小写 对应其他语言 private 不可以被外部包访问


7、常量

一般都是全部大写,然后多个单词之间用_(下划线)进行拼接
例如:

    const XIAO_YIN = 0
    const XIAO_YIN_CSDN_URL = "https://blog.csdn.net/qq_44111597"

一点点笔记,以便以后翻阅。

相关文章:

  • 容灾演练月报 | 雅安市商业银行四大业务系统完成容灾切换演练
  • STM32CubeIDE实现printf重定向输出到串口
  • 解决:知乎中导入的md格式文档,公式不能居中,即使加了\\后也不能居中
  • js小数点后面不足4位数补0
  • ES6模块化开发问题大全
  • 离子液体1-乙基-3-甲基咪唑六氟磷酸盐([EMIm][PF6])修饰纳米Fe3O4四氧化三铁(规格)
  • 学校的校园广播是如何设置的
  • 润和软件携OpenHarmony亮相全国首场华为云云商店·星品推介会
  • 产品经理或项目经理考PMP,薪资会不会提高?
  • [iOS]-UIKit
  • RT1176 LPSPI驱动移植到RT-THREAD
  • JAVA异步执行线程池
  • 效果最大化的所需素材
  • MySQL中的int(11)类型后的括号是什么意思?ZEROFILL属性
  • 树莓派4B(64位)环境搭建
  • 【每日笔记】【Go学习笔记】2019-01-10 codis proxy处理流程
  • el-input获取焦点 input输入框为空时高亮 el-input值非法时
  • Linux Process Manage
  • maya建模与骨骼动画快速实现人工鱼
  • MySQL Access denied for user 'root'@'localhost' 解决方法
  • MySQL数据库运维之数据恢复
  • orm2 中文文档 3.1 模型属性
  • 基于Javascript, Springboot的管理系统报表查询页面代码设计
  • 基于阿里云移动推送的移动应用推送模式最佳实践
  • 通过几道题目学习二叉搜索树
  • ​一文看懂数据清洗:缺失值、异常值和重复值的处理
  • (1)Android开发优化---------UI优化
  • (2)STM32单片机上位机
  • (31)对象的克隆
  • (笔记)Kotlin——Android封装ViewBinding之二 优化
  • (翻译)Quartz官方教程——第一课:Quartz入门
  • (入门自用)--C++--抽象类--多态原理--虚表--1020
  • (一) storm的集群安装与配置
  • (原創) 物件導向與老子思想 (OO)
  • (原創) 系統分析和系統設計有什麼差別? (OO)
  • (中等) HDU 4370 0 or 1,建模+Dijkstra。
  • (转) SpringBoot:使用spring-boot-devtools进行热部署以及不生效的问题解决
  • *(长期更新)软考网络工程师学习笔记——Section 22 无线局域网
  • .360、.halo勒索病毒的最新威胁:如何恢复您的数据?
  • .NET Reactor简单使用教程
  • .NET分布式缓存Memcached从入门到实战
  • .net和jar包windows服务部署
  • .NET轻量级ORM组件Dapper葵花宝典
  • .NET微信公众号开发-2.0创建自定义菜单
  • [ C++ ] template 模板进阶 (特化,分离编译)
  • [<死锁专题>]
  • [BZOJ 4598][Sdoi2016]模式字符串
  • [C/C++]_[初级]_[关于编译时出现有符号-无符号不匹配的警告-sizeof使用注意事项]
  • [CareerCup] 2.1 Remove Duplicates from Unsorted List 移除无序链表中的重复项
  • [CISCN2019 华东南赛区]Web4
  • [CUDA 学习笔记] CUDA kernel 的 grid_size 和 block_size 选择
  • [Django 0-1] Core.Handlers 模块
  • [EFI]DELL XPS13 9360电脑 Hackintosh 黑苹果efi引导文件
  • [error] 17755#0: *58522 readv() failed (104: Connection reset by peer) while reading upstream
  • [ESP32 IDF]web server