Maison > développement back-end > Golang > Quel est le rôle des commentaires en langage Go

Quel est le rôle des commentaires en langage Go

青灯夜游
Libérer: 2023-01-28 09:04:01
original
2204 Les gens l'ont consulté

Le rôle des commentaires dans le programme est d'annoter et d'expliquer le programme, d'améliorer la lisibilité du code du programme et de faciliter la lecture du code source ; le but est de le rendre facile à comprendre pour les autres et pour vous-même ; sachez d'un coup d'oeil que ce code est à quoi sert-il. Les commentaires de Go sont divisés en commentaires de ligne "//" et commentaires de bloc "/* */" ; dans l'utilisation réelle, les commentaires de ligne sont utilisés plus souvent et les commentaires de bloc sont principalement utilisés pour formater de grandes sections de code ou de commentaires de package.

Quel est le rôle des commentaires en langage Go

L'environnement d'exploitation de ce tutoriel : système Windows 7, GO version 1.18, ordinateur Dell G3.

Quel est le rôle des commentaires

Les commentaires sont des explications et des descriptions du code, et leur but est de permettre aux gens de comprendre plus facilement le code. Les commentaires se produisent lorsque le programmeur écrit une explication ou un indice pour une instruction, un segment de programme, une fonction, etc., ce qui peut améliorer la lisibilité du code du programme.

Le rôle des commentaires dans le programme est d'annoter et d'expliquer le programme pour faciliter la lecture du code source. Le système de compilation ignorera automatiquement la partie commentée lors de la compilation du code source, donc les commentaires ne joueront aucun rôle dans la réalisation du fonctionnement du programme. L'ajout approprié de commentaires au code source peut améliorer la lisibilité du code source.

Les commentaires sont des explications et des descriptions du code. Le but est de faciliter la compréhension des autres et de vous-même, et vous pouvez savoir en un coup d'œil à quoi sert ce code. Les commentaires corrects du programme incluent généralement des commentaires de préambule et des commentaires fonctionnels. Le contenu principal des commentaires du préambule comprend l'interface du module, la description des données et les fonctions du module. Le contenu principal des commentaires fonctionnels du module comprend la fonction du segment de programme, la fonction de l'instruction et l'état des données.

Classification des commentaires go

les commentaires go sont divisés en commentaires en ligne // et commentaires en bloc /* */. En utilisation réelle, les commentaires de ligne sont utilisés plus souvent et les commentaires de bloc sont principalement utilisés pour formater de grandes sections de code ou des commentaires de package. // 和块注释 /* */ 之分。在实际的使用中,行注释使用得比较多,块注释主要用于格式化大段代码或包的注释中使用。

在 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.
Copier après la connexion

就有时间 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}
Copier après la connexion

包注释

包注释用来描述介绍这个包,以及提供包的一些信息。

在 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.
*/
Copier après la connexion

可以看到 builtin 包的作用是给预定义标识符提供文档。

我们同样来看 errors 包中的 errors.go 文件,可以看到包注释很长

// Package errors implements functions to manipulate errors.
Copier après la connexion

这里讲了包 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.
Copier après la connexion

后面还有一大堆,讲了 errors 包相关的文件,原理,应用等信息。

如果我们继续查看源码,会发现包注释都是以 package + 一个动词

La touche de raccourci pour les commentaires de ligne dans Goland est Ctrl+/, et la touche de raccourci pour bloquer les commentaires est Ctrl+Shift+/

Application

Commentaire de fichier
🎜

Ajoutez un commentaire avant chaque fichier pour décrire l'auteur, l'heure et le droit d'auteur. 🎜

Nous pouvons ouvrir un paquet pour vérifier, comme le paquet intégré.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}
}
Copier après la connexion
🎜

Il y a le temps 2011, l'auteur va et le droit d'auteur , Nous pouvons ouvrir d'autres fichiers à volonté et constater que seule l'heure change, mais rien d'autre n'a changé. 🎜

Dans Goland, vous pouvez rechercher et modifier le modèle de commentaire de fichier dans Paramètres/Éditeur/Modèles de fichiers et de code/Fichiers/Go File, de sorte qu'à chaque fois que vous créez un nouveau fichier, il générera automatiquement des commentaires. 🎜

Ceci est mon modèle 🎜🎜

// errorString is a trivial implementation of error.
type errorString struct {
    s string
}
Copier après la connexion
Copier après la connexion
🎜🎜🎜Commentaires sur le package🎜🎜

Les commentaires sur le package sont utilisés pour décrire et présenter ce package, ainsi que pour fournir quelques informations sur les informations du paquet. 🎜

In go, il n'y a qu'un seul package dans un répertoire (hors sous-répertoires), il peut donc y avoir plusieurs fichiers dans un package. Généralement, écrivez simplement un commentaire de package sur l'un des fichiers. . 🎜

De même, regardons le fichier intégré.go dans le package intégré🎜🎜

// 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
}
Copier après la connexion
Copier après la connexion
🎜

Vous pouvez voir que la fonction du package intégré est à fournir Une documentation est fournie pour la définition des identifiants. 🎜

Regardons également le fichier erreurs.go dans le package d'erreurs. Nous pouvons voir que les commentaires du package sont très longs🎜🎜rrreee🎜

Ici. nous parlons des erreurs du package Implémentation de certaines fonctions de gestion des erreurs. 🎜🎜rrreee🎜

Il existe de nombreux fichiers, principes, applications et autres informations liés au package d'erreurs. 🎜

Si nous continuons à regarder le code source, nous constaterons que les commentaires du package commencent tous par package + un verbe. Généralement, cette courte phrase explique le. fonction du package. Consultez ensuite la description spécifique du package pour d’autres informations sur le package. 🎜🎜🎜Commentaires de fonction🎜🎜🎜Les commentaires de fonction sont utilisés pour décrire la fonction de la fonction et d'autres informations connexes. 🎜🎜Regardons également le fichier erreurs.go dans le package errros🎜🎜rrreee🎜

这里用一句话说明了 New 功能的作用,即返回一个自定义的错误。

然后又用一句话说了这个函数相关的特点,即使文本相同,每次对 New 的调用也会返回一个不同的错误值。

如果同样查看其他源码中的函数,我们发现一般几乎都是 函数名 + 一个动词 的句子开头。这个句子同样说明了这个函数的作用,即函数干了些什么。

而其他需要讲解的信息则以复杂度为基础,如果感觉某个点不容易理解,那么最好都要写注释,如函数签名,函数原理,函数使用过程中需要注意的点等。

数据类型注释

数据类型注释说明 这个数据类型用来干什么。

如 errors.go 中

// errorString is a trivial implementation of error.
type errorString struct {
    s string
}
Copier après la connexion
Copier après la connexion

这里就说明了  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
}
Copier après la connexion
Copier après la connexion

几乎都是以 类型名 + is 开头的句子,这个句子说明了这个类型的作用。

TODO

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

FIXME

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

XXX

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

godoc

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

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

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal