1. 程式人生 > >go基本型別和運算子

go基本型別和運算子

bool

一個簡單的列子:

var a bool = ture

bool值只有false和true。兩個相同的型別之間可以通過 == 或者 != 來比較獲取一個bool值。

比如:

var a = 1
a == 5 //false
a == 1 //true
a != 2 //true
a != 1 //false

go對於值之間的比較非常嚴格,只有兩個相同的型別的值才可以進行比較。如果其中一個值是常量,那麼另外一個的值必須是跟該常量型別相容。
bool的常量和變數也可以通過邏輯運算子 非!和&& 或|| 結合來產生出另一個bool值。

好的命名可以提升程式碼的可讀性 ,對於bool的值,例如is或者Is開開頭的IsSorted。

數字型別

整型int和浮點型float

整數:

  • int8(-128 -> 127)
  • int16(-32768 -> 32767)
  • int32(-2,147,483,648 -> 2,147,483,647)
  • int64(-9,223,372,036,854,775,808 -> 9,223,372,036,854,775,807)
    無符號整數:
  • uint8(0 -> 255)
  • uint16(0 -> 65,535)
  • uint32(0 -> 4,294,967,295)
  • uint64(0 -> 18,446,744,073,709,551,615)
    浮點型(IEEE-754 標準):
  • float32(± 1e-45 -> ± 3.4 * 1e38)
  • float64(± 5 1e-324 -> 107 1e308

go中沒有float型別,整型的零值為0,浮點型的零值為0.
float32精確到小數點後7位,float64精確到小數點15位。所以在比較浮點數時需要非常小心。

開發中儘量使用float64,因為math包中所有關於數學運算的函式都會要求接收這個型別。

go不允許不同型別之間的混合使用,但是對於常量的限制非常少,所以允許常量之間的混合使用。

package main

func main() {
    var a int
    var b int32
    a =
15 b = a + a //錯誤 b = b + 5 //5是常量 }

複數

go有兩種複數:

complex64
complex128

複數用re+imI來表示,re代表實數部分,im代表虛數部分,I代表根號負1。

運算子

邏輯運算子

== , !=, < , <=, > ,>=

算數運算子

二元運算子 + - * /
取餘 %
自增自減 (+=, ++) -= *= /= %=

運算子優先順序

優先順序   運算子
 7      ^ !
 6      * / % << >> & &^
 5      + - | ^
 4      == != < <= >= >
 3      <-
 2      &&
 1      ||

類型別名

當你在使用某個型別時,你可以給他另起一個名字,然後使用這個新名字。

package main

import "fmt"

type newint int

func main() {
    var a newint = 2
    c := a + 2
    fmt.Println("c = %d", c)
}

微信搜尋「goentry-xyz」,關注公眾號「燈下獨碼」