學習Golang語言(3):類型--布爾型和數實值型別

來源:互聯網
上載者:User
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。

跟著“碼術”一起學習Golang語言。今天講解Golang語言的基本類型,介紹布爾類型和數實值型別。

學習Golang語言(1): Hello World

學習Golang語言(2): 變數

學習Golang語言(3):類型--布爾型和數實值型別

學習Golang語言(4):類型--字串

學習Golang語言(5):類型--數組


布爾類型

布爾類型是 bool。Go語言提供了內建的布爾值true和flase。Go語言支援標準的邏輯和比較操作。這些操作的結果都是布爾值。

布爾值和運算式可以用於if語句中,for語句的條件中以及switch語句的case的判斷中。

邏輯操作符:

!:邏輯非操作符;

||:邏輯或操作符;

&&:邏輯與操作符

比較操作符。

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


數實值型別

----整形和浮點型

Go語言提供大量內建的數實值型別。眾所周知的類型如int,這個類型根據你的系統決定適當的長度。在32位系統上是32位,在64位系統上是64位。因此在Go語言中,int和int32是不同類型。如果你希望明確其長度,可以使用int32或者int64等等。

完整的整數類型(符號和無符號)是int8,int16,int32,int64 和 byte,uint8,uint16,uint32,uint64。其中byte 是 uint8 的別名。

浮點類型的值有 float32 和 float64 (沒有 float 類型)。64 位元的整數和浮點數總是 64 位元的,即便是在 32 位的架構上。

整形變數的預設賦值是0,浮點型變數的預設賦值是0.0

需要注意的是:這些類型全部都是獨立的,並且混合使用這些類型向變數賦值會引起編譯器錯誤。例如:

package mainfunc main(){  var a int  //通用整數類型  var b int32 // 32位整數類型  a = 15  b =a + a   // 混合這些類型是非法的,這會導致編譯異常  b = b + 5  // 5是常量(未定義類型),所以沒有問題}

如果不同數實值型別之間進行數值運算或者比較操作時,需要進行類型轉換。通常將類型轉換成最大的類型以防止精度丟失。類型轉換採用type(value)的形式。當將類型轉換為小的類型時,為了防止防止精度丟失,我們可以建立合適的函數。例如:將int型轉換為uint8

func Uint8FromInt(n int) (uint8, error) {  if 0 <= n && n <= math.MaxUint8 {// conversion is safe      return uint8(n), nil  }  return 0, fmt.Errorf(“%d is out of the uint8 range”, n)}

----複數類型

Go原生支援複數。複數有兩種類型:complex64(實部虛部都是一個float32)和complex128 (實部虛部都是一個float64)。複數的形式為:re+im i。其中re為實部,im為虛部。

複數可以使用內建的complex()函數或者包含虛部數值的常量來建立。複數的各個部分可以使用內建函數real()和imag()函數獲得。

例如:

  var c1 complex64 = 5 + 10i  fmt.Printf(“The value is: %v”, c1)   // 這裡會輸出: 5 + 10i   c := complex(50,100);   fmt.Printf(“The value is: %v”, c1)   //這裡會輸出: 50 + 100i

複數支援所有的算術操作符。唯一可以用於複數的比較操作符號是 == 和!=。

標準庫中有一個複數包 math/cmplx提供複數各種通用的操作函數。

如果不需要考慮記憶體問題,盡量使用complex128類型,因為標準庫中所有函數都是使用complex128類型。

---------------------------------------------

歡迎關注碼術!一起學習golang.


相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.