「Go 語言教程」Go 語言常量變量和運算符

2020-12-25 萬能的華哥Dean
Go 語言教程

每一門語言都會有常量的定義,變量的定義,以及基於這些定義的運算,那麼本次將進行Go語言的常量,變量和運算符進行介紹和講解。

1 常量和變量

常量是定義的一個不被改變的值,在程序運行過程中是不允許被改變的。而變量是可以被改變和賦值以及修改的。常量和變量的數據類型都可以是布爾類型,數字類型(整型,浮點型,和複數類型),以及字符串類型。常量常見的定義格式有:

const constName type = value

包含const, 常量的名字,常量的類型,以及常量的值。

變量的定義有:

var varName type = value

類似的定義,也包含了var,變量名字,變量的類型,以及變量的值。

常量和變量除了顯式的定義,還有隱式的定義,如:

const constName = "stringConst"

var varName = value

varName := value

2 運算符內容

常見的運算符類型有,算數運算符,關係運算符,邏輯運算符,位運算符,賦值運算符,其他的運算符。

2.1 算數運算符

加減乘除(+,-,*,/)、求餘(%)、自增(++)、自減(--)

2.2 關係運算符

判斷相等(==),判斷不相等(!=),左值比右值大(>),左值比右值小(<),左值大於等於右值(>=),左值小於等於右值(<=)

2.3 邏輯運算符

邏輯與(AND)運算符&&, 邏輯或(OR)運算符||,邏輯非(NOT)運算符!。邏輯運算和語言無關,所有語言的邏輯運算都是通用的並且滿足以下規則:

true && true為truetrue && false為falsetrue || true 為truetrue || false為truefalse || false為false!true 為false!false為true2.4 位運算符

計算機中位運算是常見的運算,位運算的操作和定義為:

Go語言支持的位運算符有與(&),或(|),異或(^),和左移(<<),右移(>>)。

左移位數相當於乘以2的n次方,在位數操作中右邊補0;右移相當於除以2的n次方,在位數操作中左邊補0。

2.5 賦值運算符

賦值運算符除了基礎的賦值運算符(=)之外,有些綜合的寫法如下:

2.6 其他運算符

主要是取地址操作和*的指針的值操作。保留了c語言中基本的操作內容地址和內存存儲內容的方便性操作。

3 運算符的優先級

如果對於運算符的優先級不是記憶得很清晰,可以使用括號的方式來圈定優先級順序。使用括號的編程習慣也是一個非常不錯的編碼習慣。

4 總結和經驗

在工程項目和代碼模塊設計中,對於不變的變量,一般避免deadcode的模式而採用常量定義的模式,並且對於要考慮安全保密因素的配置項一般也寫成常量的模式。全局使用的變量定義一般在變量命名的時候採用固定前綴的方法來標識這是個全局變量,但是對於全局變量比如資料庫訪問對象,需要考慮多線程使用時候的安全問題,這個時候需要將資料庫訪問全局變量封裝到類(struct)中,訪問方式都是通過方法,並且使用單例的定義模式。而運算符的優先級順序,是需要掌握的,當然如果著實記不住了,或許可以考慮良好的增加括號的編程習慣。對於位運算常見於網絡通信的自定義字節流協議的某些欄位進行checksum的時候進行一種簡單的移動來加解密的算法構成,以及偏硬體的底層嵌入式的代碼開發中較常見。

相關焦點

  • 「Go 語言教程」 Go 語言基礎語法
    Go 語言教程最原始的語言,從人類使用的手語,到語音表達;從英語到漢語,以及到計算機能識別的各種程式語言,每個語言都有自己的語法。那麼Go語言也是類似的。Go語言的基礎語法主要由這幾個方面構成,Go語言的關鍵字,Go語言的標識符,行分隔符回車,變量聲明分割的空格,注釋,以及標記。
  • Go語言常見語法錯誤
    }2、未使用的變量如果你有未使用的局部變量,代碼將編譯失敗。如果你給未使用的變量分配了一個新的值,代碼還是會編譯失敗。你需要在某個地方使用這個變量,才能讓編譯器愉快的編譯。,但在多變量聲明中這是允許的,其中至少要有一個新的聲明變量。
  • 入門教程:花 5 分鐘學習 Go 語言
    變量在 Go 語言裡,你可以使用下面兩種方法創建變量:var x int其他類型,包括 int、int32、int64、float32、float64、bool和 string 等,還有帶 u 前綴的無符號整型類型,例如:uint8 與 byte 是同一種類型(ps:可以認為 type 是 uint8 的別稱,見源碼 type byte
  • go語言學習第四天——變量的類型
    1、布爾型變量賦值時,不可以加引號2、在聲明時,可以簡明聲明,也可以正常聲明3、布爾型變量的初始默認值是false4、布爾型變量可以與或運算帶符號整型數go語言的整型數比較多,主要是從8位整形開始,然後一直到64位(應該是現在的系統最高就是64位的,如果以後出了128位系統,可能還會變成128位)
  • 60分鐘快速了解Go語言
    }/* <- 快看快看我是跨行注釋_(:з」∠)_Go語言的函數可以有多個參數和 *多個* 返回值。* 取值// Map是動態可增長關聯數組,和其他語言中的hash或者字典相似。>// 和其他程式語言不同的是,go支持有名稱的變量返回值。
  • C語言入門教程運算符
    C語言中增加了一個求模運算符,是用來取餘的。需要注意的是,求模運算符的兩個操作數必須是整型。C語言中的除法運算,不同類型的除數和被除數會導致不同類型的運算結果。一種情況是,當除數和被除數都是整數時,運算結果也是整數。當不能整除時,就直接捨棄小數部分,只保留整數部分。另一種情況是,一旦除數和被除數中有一個是小數,那麼運算結果也是小數,並且是double類型的小數。C語言中的取餘運算,就是求相除後的餘數。取餘運算中%的兩邊都必須是整數,不能出現小數,否則會報錯。
  • Go語言的學習筆記(第二章)
    在程式語言中標識符就是程式設計師定義的具有特殊意義的詞,比如變量名、常量名、函數名等等。常量相對於變量,常量是恆定不變的值,多用於定義程序運行期間不會改變的那些值。常量的聲明和變量聲明非常類似,只是把var換成了const,常量在定義的時候必須賦值。
  • 大話go 語言:談談 go 語言的類型系統
    C 語言的 struct 天生有封裝特點,只是作用域都是 public,這個可以通過編程約定來解決;繼承是個考察點,記得 linux 驅動程序中 kobject 模型,就是通過成員變量包含另一個類型變量來實現繼承,專業術語叫做組合;剩下的多態可以通過函數指針來實現。沒想到後來寫了四年的 java。
  • 強制了解const,C語言變量和常量!C語言系列教程!編號零零六
    C語言變量AC程式語言中的變量是指定的存儲器位置,用戶可以在程序執行期間存儲相同數據類型的不同值。這意味著變量是給予內存位置的名稱,我們可以在其中存儲相同數據類型的不同值。換句話說,變量可以定義為在程序執行期間保存相同數據類型值的存儲容器。數據類型的正式定義如下......
  • 單片機c語言教程:C51運算符和表達式
    上兩課說了常量和變量,先來補充一個用以重新定義數據類型的的語句吧。這個語句就是 typedef,這是個很好用的語句,但我卻不常用它,通常我定義變量的數據類型時都是使 用標準的關鍵字,這樣別人能很方便的研讀你的程序。
  • 「語言實踐」Go語言文檔自動化之go-swagger
    1 go-swagger依賴包獲取go-swagger中在github的倉庫下的依賴包如下,主要包含可以對語法進行校驗的govalidator,文檔化的標準specification的go-openapi,還有網絡處理的golang.org官網旗下的net和text。
  • 我不喜歡Go語言的十個理由
    這樣做可能是為了省掉 public 和 private 關鍵字,但是,首字母大寫已經被用來表示其他意思——比如類名的首字母是大寫的,常量完全是大寫的。對於我來說,使用完全小寫的字母來定義全局常量實在是有點不適應。如果你要定義私有結構體,情況會變得更加糟糕,因為你必須使用小寫字母。例如,你可能有一個結構體叫作 user,那麼你會怎麼定義這個結構體的變量呢?
  • Go語言進階之路(一):變量、類型、數組、切片、字典和結構體
    Go語言中除了這些基礎類型,還有數組、切片、字典、指針、結構體、通道、函數、接口這些類型,後續的文章會詳細講這些。二 變量Go語言定義變量使用var關鍵字。定義變量時可以選擇指定類型,或者讓編譯器自動推導出類型,可以指定初始化值,也可以使用編輯器的初始值。
  • C語言中的運算符和表達式
    一、賦值運算符和賦值表達式1、賦值運算符C語言的賦值運算符為等號,表示形式「=」。此外,還有複合賦值運算符,後續陸續介紹。2、賦值表達式「=」的左側是變量,右側是常量、變量、表達式、函數等,「=」的含義是將右邊的值賦給左側的變量,程序運行時先計算右側值,然後賦給左側變量。
  • 解讀 Go 語言的 2019:Go 語言不行了嗎?
    Go 語言目前所擅長的領域仍然在服務端的 Web 系統、API 網關、中間件、緩存系統,以及資料庫、容器技術和雲計算等方面。在這些方面,我們有非常多的框架可以選擇。其中最受歡迎的框架和軟體如下:Web 框架:Gin 、 Beego 、 Echo 等。微服務框架:go-kit 、 go-micro 等。
  • 重度使用 Go 的「後遺症「,你有嗎?
    1. 聲明變量時類型與變量名的順序總寫反Go語言是C家族程式語言的一個分支,和C/C++一樣,Go也是靜態編譯型語言,這就要求在使用任何變量之前需要先聲明這個變量,無論使用常規聲明方法還是短聲明形式。經常在函數中使用「短聲明」形式聲明變量短聲明不是Go語言獨創的語法。短聲明的好處正如其名:短小,無需顯式提供變量類型,編譯器會根據賦值操作符後面的初始化表達式的結果自動為變量賦予適當類型。因此,它成為了Gopher們喜愛和重度使用的語法。
  • 為Java程式設計師準備的Go教程:快速入門
    變量go語言變量的聲明和java的略有不同,以聲明一個int類型,變量名為age為例,go語言變量生成如下:var age int =10同樣的變量,在java中的聲明是:int age = 10;可以看到go的變量聲明,修飾變量的類型在變量的後面,而且是以var關鍵字開頭。
  • GO語言入門(第一個go程序)
    Go語言通過減少關鍵字的數量(25 個)來簡化編碼過程中的混亂和複雜度。作為一門具有明確編碼規範的語言,它要求可以採用不同的編譯器如 gc 和 gccgo(第 2.1 節)進行編譯工作,這對語言本身擁有更好的編碼規範起到很大幫助。LALR 是 Go 語言的語法標準,你也可以在 src/cmd/internal/gc/go.y 中查看到,這種語法標準在編譯時不需要符號表來協助解析。
  • Go語言聖經-學習筆記01
    不同的有:interface、select、chan、package、defer、gochan  :(channel通道 )並發通道defer:對函數進行析構go:並發相關interface:接口聲明關鍵字2.2聲明四種類型:var變量、const常量、type類型、func函數var變量
  • 解讀Go語言的2020:變革前夜
    環境變量:跟進的調整 Go 語言可識別的系統環境變量 GO111MODULE 在 1.14 和 1.15 版本中的默認值都是 auto。這意味著,go 命令僅在當前目錄或上層目錄中存在 go.mod 文件的情況下才會以 go modules 的方式運行,否則它就會退回到之前以 GOPATH 為中心的運行方式。