Go语言注释规范

news/2024/12/26 4:55:03/

Go语言注释规范

  • 1.注释规范
    • 包注释
    • 文件注释
    • 结构体注释和接口注释
    • 函数和方法的注释
    • 代码逻辑注释
  • 2.Goland注释相关配置
    • 包注释和文件注释配置
    • Goanno插件

1.注释规范

包注释

包注释是对包的介绍,每个包都至少有一个包注释,在同一个包下,任一一个源文件中注释即可,放置在package之前,来简短描述这个包的功能

例子:

// Package analyze 用于分析在接入层获取的接口
package analyze

文件注释

每个文件都应有一个文件注释,放置在package之后,需要包含文件名称,文件描述,文件作者及其时间,更新作者及其时间

例子:

package 包名称// @Title        文件名称
// @Description  文件描述
// @Create       创建作者 日期 时间
// @Update       更新作者 日期 时间

结构体注释和接口注释

每个结构体或接口都应有注释,在结构体或接口定义上面,需要有一个对整个结构体或接口的简要介绍,结构体或接口内的每个成员变量也需要有注释

例子:

// User defines user login info
type User struct {UserName string // user's namePassword string // user's password
}// IUser defines user function
type IUser interface {Login()  // user login into the systemLogout() // user logout the system
}

函数和方法的注释

每个函数或方法都应有注释,需要包含函数或方法名称、函数或方法描述、函数或方法的创建作者及其创建时间、输入参数及其参数类型和解释、返回参数及其参数类型和解释

例子:

// 函数或方法名称
// @Description        函数或方法描述
// @Create             作者 日期 时间
// @Param              输入参数名 参数类型 解释
// @Return             返回参数名 参数类型 解释

如果涉及到函数或方法的变更,需要写明修改作者、修改日期和时间、修改的功能描述

// @Modified           作者 日期 时间
// @Modify description 修改的功能描述

代码逻辑注释

每个代码块都需要添加注释,特别是比较复杂的逻辑:

// todo
if age == 18 {...
}

2.Goland注释相关配置

包注释和文件注释配置

Goland->Settings->Editor->File and Code Templates->Go File

替换为如下配置:

// 
package ${GO_PACKAGE_NAME}// @Title        ${FILE_NAME}
// @Description  
// @Create       yourname ${YEAR}-${MONTH}-${DAY} ${TIME}
// @Update       yourname ${YEAR}-${MONTH}-${DAY} ${TIME}

在这里插入图片描述

Goanno插件

1、安装Goanno插件

在这里插入图片描述

2、修改默认配置

在这里插入图片描述

1️⃣ 函数注释、方法注释

// ${function_name}
// @Description ${todo}
// @Create         yourname ${date} 
// @Param          ${param_name} ${param_type}
// @Return          ${ret_name_type}

2️⃣ Struct 配置

// ${struct_name} 

3️⃣ 接口注释

// ${interface_name}

http://www.ppmy.cn/news/1558179.html

相关文章

【文档搜索引擎】缓冲区优化和索引模块小结

开机之后,首次制作索引会非常慢,但后面就会快了 重启机器,第一次制作又会非常慢 这是为什么呢? 在 parserContent 里面,我们进行了一个读文件的操作 计算机读取文件,是一个开销比较大的操作, …

独一无二,万字详谈——Linux之文件管理

Linux文件部分的学习,有这一篇的博客足矣! 目录 一、文件的命名规则 1、可以使用哪些字符? 2、文件名的长度 3、Linux文件名的大小写 4、Linux文件扩展名 二、文件管理命令 1、目录的创建/删除 (1)、目录的创建 ① mkdir…

CCF算法学习-1

1. B - Piano 问题描述 有一个无限长的钢琴键盘。是否存在一个连续的片段,其中包含 W 个白键和 B 个黑键? 设 S 为通过无限重复字符串 wbwbwwbwbwbw 形成的字符串。 是否存在 S 的一个子字符串,其中包含 W 个 w(白键&#xff09…

新手SEO指南如何入门与实操技巧分析

内容概要 在数字化时代,搜索引擎优化(SEO)已成为网站流量获取的重要手段。针对新手,理解SEO的基础是入门的第一步。本文将从多个方面为新手提供系统性的知识,帮助他们掌握SEO的核心概念和实用技巧。 首先&#xff0c…

MongoDB教程002:文档(表)的增删改查

文章目录 1.4 文档基本CRUD1.4.1 文档的插入1.4.1.1 单个文档的插入1.4.1.2 批量插入 1.4.2 文档的基本查询1.4.3 文档的更新1.4.4 删除文档 1.4 文档基本CRUD 文档(document)的数据结构和JSON基本一样。 所有存储在集合中的数据都是BSON格式。 1.4.1…

【深入理解网络协议】

深入理解网络协议 一、基础模型 OSI模型 OSI模型是国际标准化组织(ISO)提出的一个参考模型,它将网络通信过程划分为7个层次,每一层都有特定的功能和责任。 [!TIP] 说明 层次: 物理层:负责传输原始比特流…

外连接转AntiJoin的应用场景与限制条件 | OceanBase SQL 查询改写系列

在《SQL 改写系列:外连接转内连接的常见场景与错误》一文中,我们了解到谓词条件可以过滤掉连接结果中的 null 情形的,将外连接转化为内连接的做法是可行的,正如图1中路径(a)所示。此时,敏锐的你或许会进一步思考&#…

“Content type ‘text/plain;charset=UTF-8‘ not supported“,

用postman进行新增数据时,如下提示: "Content type text/plain;charsetUTF-8 not supported" Content type text/plain 不支持 点击Headers我们看到Content-Type 支持的类型是json 所以问题出现在这个地方,要将Text切换成JSON…