註釋在程式中的作用是對程式進行註解和說明,高程式程式碼的可讀性,便於對原始碼的閱讀;目的是為了讓別人和自己很容易看懂,一看就知道這段程式碼是做什麼用的。go的註釋有行註釋「//」和塊註釋「/* */」之分;在實際的使用中,行註釋使用得比較多,塊註釋主要用於格式化大段程式碼或包的註釋中使用。
本教學操作環境:windows7系統、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 + 一個動詞
開頭的,一般這個短句就說明了這個包的功能,然後再視具體的包說明包的其他資訊。
函數註釋用來描述函數的功能,以及其他相關的資訊。
我們同樣來看 errros 包中的 errors.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}
}
登入後複製
這裡用一句話說明了 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視訊教學、】
以上就是Go語言中註釋有什麼作用的詳細內容,更多請關注TW511.COM其它相關文章!