每一門語言都會有常量的定義,變量的定義,以及基於這些定義的運算,那麼本次將進行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的時候進行一種簡單的移動來加解密的算法構成,以及偏硬體的底層嵌入式的代碼開發中較常見。