首頁 後端開發 Golang go語言需要分號嗎

go語言需要分號嗎

Nov 25, 2022 pm 06:52 PM
go golang go語言

Go語言不需要在語句或宣告的末尾加上分號,除非一行上有多條語句。 Go語言預設一行就是一條數據,編譯器會主動把特定符號後的換行符號轉換為分號,因此換行符號所新增的位置會影響Go程式碼的正確解析。

go語言需要分號嗎

本教學操作環境:windows7系統、GO 1.18版本、Dell G3電腦。

Go語言不需要在語句或宣告的末尾加上分號,除非一行上有多條語句。實際上,編譯器會主動把特定符號後的換行符號轉換為分號, 因此換行符添加的位置會影響Go代碼的正確解析(譯註:例如行末是標識符、整數、浮點數、虛數、字符或字串文字、關鍵字break 、 continue 、 fallthrough 或return 中的一個、運算子和分隔符號、 -- 、 ) 、 ] 或} 中的一個)。

舉例, 函數的左括號{ 必須和func 函數宣告在同一行上,且位於末尾,不能獨佔一行,而在表達式x y 中,可在後換行,不能在前換行(譯註:以結尾的話不會被插入分號分隔符,但是以x結尾的話則會被分號分隔符,從而導致編譯錯誤。

Go語言的程式碼風格

(1)縮排與折行

縮排直接使用gofmt工具格式化即可(gofmt是使用tab縮排的)

折行方面,一行最長不超過120個字符,超過的請使用換行展示,盡量保持格式優雅

我們使用GoLand開發工具,直接使用快捷鍵:Ctrl Alt L即可。

(2)語句的結尾

Go語言中是不需要類似Java需要分號結尾,預設一行就是一條資料。

如果你打算將多個語句寫在同一行,它們則必須使用。

(3)括號和空格

括號和空格方面,也可以直接使用gofmt 工具格式化(go會強制左大括號不換行,換行會報語法錯誤),所有的運算子和運算元之間要留空格。【相關建議: Go影片教學

//正确的方式
if a > 0 {

}
//错误的方式
if a>0  // a,>,0之间应该使用空格
{       //左大括号不可以换行,会报语法错误
	
}
登入後複製

(4)import規格

import在多行的情況下,goimports會自動幫你格式化,如果你在一個文件裡面引入了一個package,建議採用如下格式:

import {
	"fmt"
}
登入後複製

如果你的包引入了三種類型的包,標準庫包,程序內部包,第三方包,建議採用如下方式進行組織你的包

inport{
	"encoding/json"
	"strings"
	
	"myproject/models"
	"myproject/controller"
	
	"github.com/astaxie/beego"
}
登入後複製

有順序的引入包,不同的類型採用空格分隔,第一種實際準庫,第二是項目包,第三是第三方包

在項目中不要使用相對路徑引入套件

(5)錯誤處理

  • #錯誤處理的原則就是不能丟棄任何有回傳err的調用,不要使用_丟棄,必須全部處理。接收到錯誤,要么返回err,或者使用log記錄下來

  • #儘早return:一旦有錯誤發生,馬上返回

  • 盡量不使用panic,除非你知道你在做什麼

  • 錯誤描述如果是英文必須為小寫,不需要標點結尾

  • #採用獨立的錯誤流進行處理

// 错误写法
if err != nil {
	// error handing
} else {
	//normal code
}

// 正确写法
if err != nil {
	// error handing
	return // or continue, etc.
}
//  normal code
登入後複製

(6)測試

單元測試檔案命名規範為example_test.go

測試案例的函數名稱都必須以Test

每個重要的函數都要先寫測試案例,測試案例和正規程式碼一起提交方便進行迴歸測試

#更多程式相關知識,請造訪:程式設計影片! !

以上是go語言需要分號嗎的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

Go語言中用於浮點數運算的庫有哪些? Go語言中用於浮點數運算的庫有哪些? Apr 02, 2025 pm 02:06 PM

Go語言中用於浮點數運算的庫介紹在Go語言(也稱為Golang)中,進行浮點數的加減乘除運算時,如何確保精度是�...

Go的爬蟲Colly中Queue線程的問題是什麼? Go的爬蟲Colly中Queue線程的問題是什麼? Apr 02, 2025 pm 02:09 PM

Go爬蟲Colly中的Queue線程問題探討在使用Go語言的Colly爬蟲庫時,開發者常常會遇到關於線程和請求隊列的問題。 �...

GoLand中自定義結構體標籤不顯示怎麼辦? GoLand中自定義結構體標籤不顯示怎麼辦? Apr 02, 2025 pm 05:09 PM

GoLand中自定義結構體標籤不顯示怎麼辦?在使用GoLand進行Go語言開發時,很多開發者會遇到自定義結構體標籤在�...

在 Go 語言中,為什麼使用 Println 和 string() 函數打印字符串會出現不同的效果? 在 Go 語言中,為什麼使用 Println 和 string() 函數打印字符串會出現不同的效果? Apr 02, 2025 pm 02:03 PM

Go語言中字符串打印的區別:使用Println與string()函數的效果差異在Go...

在Go語言中使用Redis Stream實現消息隊列時,如何解決user_id類型轉換問題? 在Go語言中使用Redis Stream實現消息隊列時,如何解決user_id類型轉換問題? Apr 02, 2025 pm 04:54 PM

Go語言中使用RedisStream實現消息隊列時類型轉換問題在使用Go語言與Redis...

Go語言中哪些庫是由大公司開發或知名的開源項目提供的? Go語言中哪些庫是由大公司開發或知名的開源項目提供的? Apr 02, 2025 pm 04:12 PM

Go語言中哪些庫是大公司開發或知名開源項目?在使用Go語言進行編程時,開發者常常會遇到一些常見的需求,�...

在Go編程中,如何正確管理Mysql和Redis的連接與釋放資源? 在Go編程中,如何正確管理Mysql和Redis的連接與釋放資源? Apr 02, 2025 pm 05:03 PM

Go編程中的資源管理:Mysql和Redis的連接與釋放在學習Go編程過程中,如何正確管理資源,特別是與數據庫和緩存�...

Golang的目的:建立高效且可擴展的系統 Golang的目的:建立高效且可擴展的系統 Apr 09, 2025 pm 05:17 PM

Go語言在構建高效且可擴展的系統中表現出色,其優勢包括:1.高性能:編譯成機器碼,運行速度快;2.並發編程:通過goroutines和channels簡化多任務處理;3.簡潔性:語法簡潔,降低學習和維護成本;4.跨平台:支持跨平台編譯,方便部署。

See all articles