목차
文件注释
包注释
数据类型注释
TODO
FIXME
XXX
godoc
백엔드 개발 Golang Go 언어에서 댓글의 역할은 무엇인가요?

Go 언어에서 댓글의 역할은 무엇인가요?

Jan 18, 2023 pm 03:56 PM
golang 언어로 가다 논평

프로그램에서 주석의 역할은 프로그램에 주석을 달고 설명하고, 프로그램 코드의 가독성을 높이고, 소스 코드의 읽기를 용이하게 하는 것입니다. 이 코드는 어떤 용도로 사용되는지 한눈에 알 수 있습니다. Go의 주석은 라인 주석 "//"과 블록 주석 "/* */"으로 나누어지며, 실제 사용에서는 라인 주석이 더 자주 사용되며, 블록 주석은 주로 코드의 큰 부분을 포맷하거나 패키지 주석을 사용하는 데 사용됩니다.

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 + 一个动词

goland에서 줄 주석 단축키는 Ctrl+/이고, 블록 주석 단축키는 Ctrl+Shift+/

Application

파일 댓글
🎜

각 파일 앞에 댓글을 추가하여 작성자, 시간, 저작권을 설명하세요. 🎜

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

TODO 即 to do, 是一个特殊的注释,表明在此处有功能等待编写,

FIXME

FIXME 即 fix me, 也是一个特殊的注释,表明此处的功能需要修正,甚至不能运行

XXX

XXX 也是一个特殊的注释,表明此处的功能实现方法有点问题,需要更改

godoc

godoc 是一个实用的工具,可以根据特定的注释格式生成文档。也可以用来查看文档,同样的 go doc 命令也是相似的作用,具体的可以查看这篇文章。

【相关推荐:Go视频教程编程教学

위 내용은 Go 언어에서 댓글의 역할은 무엇인가요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

Video Face Swap

Video Face Swap

완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

Redis Stream을 사용하여 GO Language에서 메시지 대기열을 구현할 때 User_ID 유형 변환 문제를 해결하는 방법은 무엇입니까? Redis Stream을 사용하여 GO Language에서 메시지 대기열을 구현할 때 User_ID 유형 변환 문제를 해결하는 방법은 무엇입니까? Apr 02, 2025 pm 04:54 PM

Go Language에서 메시지 대기열을 구현하기 위해 Redisstream을 사용하는 문제는 Go Language와 Redis를 사용하는 것입니다 ...

Go 's Crawler Colly의 큐 스레드의 문제는 무엇입니까? Go 's Crawler Colly의 큐 스레드의 문제는 무엇입니까? Apr 02, 2025 pm 02:09 PM

Go Crawler Colly의 대기열 스레딩 문제는 Colly Crawler 라이브러리를 GO 언어로 사용하는 문제를 탐구합니다. � ...

골란드의 사용자 정의 구조 레이블이 표시되지 않으면 어떻게해야합니까? 골란드의 사용자 정의 구조 레이블이 표시되지 않으면 어떻게해야합니까? Apr 02, 2025 pm 05:09 PM

골란드의 사용자 정의 구조 레이블이 표시되지 않으면 어떻게해야합니까? Go Language 개발을 위해 Goland를 사용할 때 많은 개발자가 사용자 정의 구조 태그를 만날 것입니다 ...

GO에서 플로팅 포인트 번호 작업에 어떤 라이브러리가 사용됩니까? GO에서 플로팅 포인트 번호 작업에 어떤 라이브러리가 사용됩니까? Apr 02, 2025 pm 02:06 PM

Go Language의 부동 소수점 번호 작동에 사용되는 라이브러리는 정확도를 보장하는 방법을 소개합니다.

GO의 어떤 라이브러리가 대기업에서 개발하거나 잘 알려진 오픈 소스 프로젝트에서 제공합니까? GO의 어떤 라이브러리가 대기업에서 개발하거나 잘 알려진 오픈 소스 프로젝트에서 제공합니까? Apr 02, 2025 pm 04:12 PM

GO의 어떤 라이브러리가 대기업이나 잘 알려진 오픈 소스 프로젝트에서 개발 했습니까? GO에 프로그래밍 할 때 개발자는 종종 몇 가지 일반적인 요구를 만납니다.

VSCODE에서 자동으로 삭제되는 Golang 제네릭 기능 유형 제약 조건을 해결하는 방법은 무엇입니까? VSCODE에서 자동으로 삭제되는 Golang 제네릭 기능 유형 제약 조건을 해결하는 방법은 무엇입니까? Apr 02, 2025 pm 02:15 PM

VSCODE 사용자의 GOLANG 제네릭 기능 유형 제약 조건을 자동으로 삭제하면 VSCODE를 사용하여 Golang 코드를 작성할 때 이상한 문제가 발생할 수 있습니다. 언제...

GO 프로그래밍에서 MySQL과 Redis 간의 연결을 올바르게 관리하고 릴리스하는 방법은 무엇입니까? GO 프로그래밍에서 MySQL과 Redis 간의 연결을 올바르게 관리하고 릴리스하는 방법은 무엇입니까? Apr 02, 2025 pm 05:03 PM

GO 프로그래밍의 자원 관리 : MySQL 및 Redis는 특히 데이터베이스 및 캐시를 통해 리소스를 올바르게 관리하는 방법을 배우는 데 연결 및 릴리스 ...

Golang의 목적 : 효율적이고 확장 가능한 시스템 구축 Golang의 목적 : 효율적이고 확장 가능한 시스템 구축 Apr 09, 2025 pm 05:17 PM

Go Language는 효율적이고 확장 가능한 시스템을 구축하는 데 잘 작동합니다. 장점은 다음과 같습니다. 1. 고성능 : 기계 코드로 컴파일, 빠른 달리기 속도; 2. 동시 프로그래밍 : 고어 라틴 및 채널을 통한 멀티 태스킹 단순화; 3. 단순성 : 간결한 구문, 학습 및 유지 보수 비용 절감; 4. 크로스 플랫폼 : 크로스 플랫폼 컴파일, 쉬운 배포를 지원합니다.

See all articles