프로그램에서 주석의 역할은 프로그램에 주석을 달고 설명하고, 프로그램 코드의 가독성을 높이고, 소스 코드의 읽기를 용이하게 하는 것입니다. 이 코드는 어떤 용도로 사용되는지 한눈에 알 수 있습니다. Go의 주석은 라인 주석 "//"과 블록 주석 "/* */"으로 나누어지며, 실제 사용에서는 라인 주석이 더 자주 사용되며, 블록 주석은 주로 코드의 큰 부분을 포맷하거나 패키지 주석을 사용하는 데 사용됩니다.
이 튜토리얼의 운영 환경: Windows 7 시스템, GO 버전 1.18, Dell G3 컴퓨터.
댓글의 기능은 무엇인가요
댓글은 코드에 대한 설명과 설명으로, 사람들이 코드를 더 쉽게 이해할 수 있도록 하는 것이 목적입니다. 주석은 프로그래머가 명령문, 프로그램 세그먼트, 함수 등에 대한 설명이나 힌트를 작성하여 프로그램 코드의 가독성을 향상시키는 것입니다.
프로그램에서 코멘트의 역할은 소스 코드를 쉽게 읽을 수 있도록 프로그램에 주석을 달고 설명하는 것입니다. 컴파일 시스템은 소스 코드를 컴파일할 때 주석이 달린 부분을 자동으로 무시하므로 주석은 프로그램의 기능을 구현하는 데 어떤 역할도 하지 않습니다. 소스 코드에 적절하게 주석을 추가하면 소스 코드의 가독성이 향상될 수 있습니다.
댓글은 코드에 대한 설명과 설명입니다. 다른 사람과 자신도 쉽게 이해할 수 있도록 하는 것이 목적이며, 이 코드가 어떤 용도로 사용되는지 한눈에 알 수 있습니다. 올바른 프로그램 설명에는 일반적으로 서문 설명과 기능 설명이 포함됩니다. 서문 주석의 주요 내용에는 모듈 인터페이스, 데이터 설명 및 모듈 기능이 포함됩니다. 모듈 기능 설명의 주요 내용에는 프로그램 세그먼트의 기능, 명령문의 기능 및 데이터 상태가 포함됩니다.
go 주석 분류
go 주석은 줄 주석 //
과 블록 주석 /* */
으로 구분됩니다. 실제 사용에서는 줄 주석이 더 자주 사용되며, 블록 주석은 주로 코드나 패키지 주석의 큰 부분을 형식화하는 데 사용됩니다. //
和块注释 /* */
之分。在实际的使用中,行注释使用得比较多,块注释主要用于格式化大段代码或包的注释中使用。
在 goland 中行注释的快捷键为 Ctrl+/
, 块注释的快捷键为 Ctrl+Shift+/
应用
在每个文件中前都加上一段注释,这段注释用来描述 作者,时间,以及版权。
我们可以随便打开一个包查看,如 builtin.go 包中
// Copyright 2011 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
就有时间 2011, 作者 go,和版权,我们可以随便打开其他文件,可以发现只有时间在变,而其他都没有变化。
在 goland 中可以在 Settings/Editor/File and Code Templates/Files/Go File
中寻改文件注释模板,这样每次新建文件都会自动生成注释。
这是我的模板
//@program: ${PROJECT_NAME}
//@author: edte
//@create: ${YEAR}-${MONTH}-${DAY} ${HOUR}:${MINUTE}
package ${GO_PACKAGE_NAME}
包注释用来描述介绍这个包,以及提供包的一些信息。
在 go 中,一个 目录中只有一个包(不包扩子目录),所以一个包中可以有多个文件,一般在其中一个文件写上包注释即可。
同样的,我们来看 builtin 这个包 中的 builtin.go 文件
/*
Package builtin provides documentation for Go's predeclared identifiers.
The items documented here are not actually in package builtin
but their descriptions here allow godoc to present documentation
for the language's special identifiers.
*/
可以看到 builtin 包的作用是给预定义标识符提供文档。
我们同样来看 errors 包中的 errors.go 文件,可以看到包注释很长
// Package errors implements functions to manipulate errors.
这里讲了包 errors 实现了一些处理错误的功能。
// The New function creates errors whose only content is a text message.
//
// The Unwrap, Is and As functions work on errors that may wrap other errors.
后面还有一大堆,讲了 errors 包相关的文件,原理,应用等信息。
如果我们继续查看源码,会发现包注释都是以 package + 一个动词
Ctrl+/
이고, 블록 주석 단축키는 Ctrl+Shift+/
각 파일 앞에 댓글을 추가하여 작성자, 시간, 저작권을 설명하세요. 🎜
buildin.go 패키지와 같은 패키지를 열어 확인할 수 있습니다. 🎜🎜
// New returns an error that formats as the given text. // Each call to New returns a distinct error value even if the text is identical. func New(text string) error { return &errorString{text} }🎜
시간 2011, 작성자 이동 및 저작권이 있습니다. , 우리는 마음대로 다른 파일을 열 수 있으며 시간만 변경되고 다른 것은 변경되지 않았음을 알 수 있습니다. 🎜
goland에서는 Settings/Editor/File and Code Templates/Files/Go File
에서 파일 주석 템플릿을 찾아서 수정할 수 있습니다. 새 파일을 만들면 자동으로 댓글이 생성됩니다. 🎜
이것이 내 템플릿입니다 🎜🎜
// errorString is a trivial implementation of error. type errorString struct { s string }🎜🎜🎜패키지 댓글🎜🎜
패키지 댓글은 이 패키지를 설명하고 소개하는 데 사용됩니다. 패키지 정보에 대한 일부 정보. 🎜
Go에서는 디렉터리(하위 디렉터리 제외)에 패키지가 하나만 있으므로 패키지에 여러 파일이 있을 수 있습니다. 일반적으로 파일 중 하나에 패키지 주석을 작성하면 됩니다. . 🎜
마찬가지로 내장 패키지에 있는 내장.go 파일을 살펴보겠습니다🎜🎜
// bool is the set of boolean values, true and false. type bool bool // true and false are the two untyped boolean values. const ( true = 0 == 0 // Untyped bool. false = 0 != 0 // Untyped bool. ) // The error built-in interface type is the conventional interface for // representing an error condition, with the nil value representing no error. type error interface { Error() string }🎜
빌트인 패키지의 기능은 다음과 같은 것을 알 수 있습니다. 식별자를 정의하기 위한 문서가 제공됩니다. 🎜
errors 패키지에 있는errors.go 파일도 살펴보겠습니다. 패키지 설명이 매우 긴 것을 볼 수 있습니다🎜🎜rrreee🎜
여기 우리는 패키지 오류에 대해 이야기합니다. 몇 가지 오류 처리 기능을 구현했습니다. 🎜🎜rrreee🎜
오류 패키지와 관련된 파일, 원칙, 응용 프로그램 및 기타 정보가 많이 있습니다. 🎜
소스 코드를 계속 살펴보면 패키지 주석이 모두 package + a 동사
로 시작하는 것을 알 수 있습니다. 패키지의 기능 그런 다음 패키지에 대한 다른 정보를 보려면 특정 패키지 설명을 살펴보세요. 🎜🎜🎜함수 주석🎜🎜🎜함수 주석은 함수의 기능과 기타 관련 정보를 설명하는 데 사용됩니다. 🎜🎜errrros 패키지에 있는errors.go 파일도 살펴보겠습니다🎜🎜rrreee🎜
这里用一句话说明了 New 功能的作用,即返回一个自定义的错误。
然后又用一句话说了这个函数相关的特点,即使文本相同,每次对 New 的调用也会返回一个不同的错误值。
如果同样查看其他源码中的函数,我们发现一般几乎都是 函数名 + 一个动词
的句子开头。这个句子同样说明了这个函数的作用,即函数干了些什么。
而其他需要讲解的信息则以复杂度为基础,如果感觉某个点不容易理解,那么最好都要写注释,如函数签名,函数原理,函数使用过程中需要注意的点等。
数据类型注释说明 这个数据类型用来干什么。
如 errors.go 中
// errorString is a trivial implementation of error.
type errorString struct {
s string
}
这里就说明了 errorString 的作用,即 error 的具体实现。
如 built.go 中
// bool is the set of boolean values, true and false.
type bool bool
// true and false are the two untyped boolean values.
const (
true = 0 == 0 // Untyped bool.
false = 0 != 0 // Untyped bool.
)
// The error built-in interface type is the conventional interface for
// representing an error condition, with the nil value representing no error.
type error interface {
Error() string
}
几乎都是以 类型名 + is
开头的句子,这个句子说明了这个类型的作用。
TODO 即 to do, 是一个特殊的注释,表明在此处有功能等待编写,
FIXME 即 fix me, 也是一个特殊的注释,表明此处的功能需要修正,甚至不能运行
XXX 也是一个特殊的注释,表明此处的功能实现方法有点问题,需要更改
godoc 是一个实用的工具,可以根据特定的注释格式生成文档。也可以用来查看文档,同样的 go doc 命令也是相似的作用,具体的可以查看这篇文章。
위 내용은 Go 언어에서 댓글의 역할은 무엇인가요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!