1. 程式人生 > >Go基本資料型別

Go基本資料型別

golang總共有18個基本資料型別,分別是:

bool    string  rune      byte        int         uint
int8    uint8   int16     uint16      int32       uint32  
int64   uint64  float32   float64     complex64   complex128

bool

布林型別用來表示真假兩種情況,bool型別的變數只有兩種情況,一種是true,另一種是false。定義bool型別變數方法是:

var flag bool

bool型別變數預設初始值是false。bool型別變數只能用true、false、返回bool型別變數的表示式賦值。如下邊的賦值方法:

var flag1 bool = true
flag2 := false
var flag3 = 1==1

string

字串型別,用來表示一個或多個字元和集合。定義字串型別的語法格式是:

// 定義string型別變數
var str string
var str1 string = "hello world"
var str2 = "hello world"
str3 := "hello world"

string型別變數在定義後預設的初始值是空,不是nil。在程式中判斷一個字串型別變數是否的方法是:

var str string
if str == "" {
    // str 為空
}

或者使用len函式獲取字串型別變數的長度,實現方式是:

var str string
if len(str) == 0 {
    // str 為空
}

len是golang內建的一個函式,這個函式返回字串的長度,切片長度,陣列長度,通道長度。如果用於獲取字串長度時,當字串為空,len返回值是0。

rune

rune型別是int32的一個別名,rune主要用於表示utf-8編碼時的字元型別。通常情況下一個字元就是一個位元組,在golang中用byte關鍵字來表示位元組,而utf-8編碼的字元,可能會存在一個字元用四個位元組表示。如果使用byte型別來儲存utf-8編碼的字串,就會導致讀取單個位元組時,值沒有意義的情況。所以golang中使用rune來儲存utf-8編碼的字元。

package main

import (
	"fmt"
)

func demoRune(arg []rune) {
	fmt.Println("rune 引數長度是:", len(arg))
	for i := 0; i < len(arg); i++ {
		fmt.Printf("%d,%c\n", i, arg[i])
	}
}

func demoString(arg string) {
	fmt.Println("string 引數長度是:", len(arg))
	for i := 0; i < len(arg); i++ {
		fmt.Printf("%d,%c\n", i, arg[i])
	}
}

func main() {
	var str = "和平"
	fmt.Println("rune型別遍歷結果是:")
	demoRune([]rune(str))
	fmt.Println("string 型別遍歷結果是:")
	demoString(str)
}

輸出資訊是:

rune型別遍歷結果是:
rune 引數長度是: 2
0,和
1,平
string 型別遍歷結果是:
string 引數長度是: 6
0,å
1,’
2,Œ
3,å
4,¹
5,³

當使用byte來讀取字元時,抽選了亂碼顯現,主要原因是一個漢字不是一個位元組。所以當字串中有漢字時,採用rune型別能夠比較方便的儲存和讀取。

rune型別變數預設初始值是0

byte

byte用來表示位元組,一個位元組是8位。定義一個位元組型別變數的語法是:

var b1 byte
var b2 = 'c'
var b3 byte = 'c'
b4 := 'c'

byte型別變數預設初始值是0。byte型別是uint8型別的一個別名。

int

有符號整數型別,在golang中,整數型別長度與作業系統有關,32位系統中,整數型別長度是4個位元組,在64位系統中,整數型別長度是8個位元組。定義整數型別語法是:

var n1 int
var n2 int = 8
var n3 = 8
n4 := 8

整數型別預設初始值是0,上邊變數n1之定義,沒有初始化,系統默給n1變數賦值0。

unit

無符號整數型別,無符號整數表示只能為正的整數。uint型別長度與作業系統有關,32位作業系統中,uint型別長度是4個位元組,64位作業系統中,uint型別長度是8個位元組。定義無符號型別變數語法是:

var un1 uint
var un2 uint = 8
var un3 = 8
n4 := 8

無符號整型預設初始值是0。

int8

int8表示一個8位的整型型別,取值範圍是:-128 至 127。與byte型別佔用空間一樣,在記憶體中佔用1個位元組。定義int8型別變數方法阿是:

var n81 int8
var n82 int8 = 8
var n83 = 8
n84 := 8

int8型別變數預設初始值是0。

uint8

無符號8位整數型別,取值範圍是:0 至 255。在記憶體中佔用1個位元組。定義uint8型別變數方法是:

var un81 uint8
var un82 unit8 = 8
var un83 = 8
un84 := 8

uint8型別變數預設初始值是0。

int16

16位整數型別,取值範圍是:-32768 至 32767,在記憶體中佔用2個位元組儲存空間。定義int16型別變數方法是:

var n161 int16
var n162 int16 = 8
var n163 = 8
n164 := 8

int16整數型別變數預設初始值是0。

uint16

16位無符號整數型別,取值範圍是:0 至 65535。在記憶體中佔用2個位元組儲存空間。定義uint16型別變數方法是;

var un161 int16
var un162 int16 = 8
var un163 = 8
un164 := 8

uint16型別變數預設初始值是0 。

int32

32位整數型別,取值範圍是:-2147483648 至 2147483647。在記憶體中佔用4個位元組儲存空間。定義int32型別變數方法是;

var n321 int16
var n322 int16 = 8
var n323 = 8
n324 := 8

int32型別變數預設初始值是0 。

unit32

32位無符號整數型別,取值範圍是:0 至 4294967295。在記憶體中佔用4個位元組儲存空間。定義uint132型別變數方法是;

var un321 int16
var un322 int16 = 8
var un323 = 8
un324 := 8

uint32型別變數預設初始值是0 。

int64

64位整數型別,取值範圍是:-9223372036854775808 至 9223372036854775807。在記憶體中佔用8個位元組儲存空間。定義int164型別變數方法是;

var n641 int64
var n642 int64 = 8
var n643 = 8
n644 := 8

int64型別變數預設初始值是0 。

uint64

64無符號位整數型別,取值範圍是:0 至 18446744073709551615。在記憶體中佔用8個位元組儲存空間。定義uint164型別變數方法是;

var un641 int64
var un642 int64 = 8
var un643 = 8
un644 := 8

uint64型別變數預設初始值是0 。

float32

單精度浮點數,取回範圍是:1.401298464324817070923729583289916131280e
-45 至 3.402823466385288598117041834516925440e
+38
定義單精度浮點數語法是:

var f321 int64
var f322 int64 = 8
var f323 = 8
f324 := 8

float32型別變數預設初始值是0。

float64

雙精度浮點數,取回範圍是:4.940656458412465441765687928682213723651e
-324 至 1.797693134862315708145274237317043567981e
+308
定義單精度浮點數語法是:

var f641 int64
var f642 int64 = 8
var f643 = 8
f644 := 8

float64型別變數預設初始值是0。

complex64

64位 複數型別,複數由兩部分組成,分別是實部和虛部,建立複數型別變數的方法是:

var c1 complex64 = complex(實部值,虛部值)
var c2 complex64 = 實部值 +虛部數字值i

複數實部使用數字表示,虛部使用數字加小寫i表示。

complex128

128位 複數型別,複數由兩部分組成,分別是實部和虛部,建立複數型別變數的方法是:

var c1 complex128 = complex(實部值,虛部值)
var c2 complex128 = 實部值 +虛部數字值i

複數實部使用數字表示,虛部使用數字加小寫i表示。
golang中提供了兩個內建函式來操作複數的實部和虛部,使用real(複數變數)來獲取複數的實部值,imag(複數變數)來獲取複數的虛部部分。

友情推廣
在這裡插入圖片描述

相關推薦

Go基本資料型別

golang總共有18個基本資料型別,分別是: bool string rune byte int uint int8 uint8 int16 uint16 int32 ui

Go入門自學寶典003-變數(基本資料型別

003-基礎資料型別 003.1 分類 Go語言內建以下這些基礎型別: 型別 名稱 長度 零值 說明 Bool 布林型別 1 false 其值不為真即為家,不可以用數字代表true或false Byte 位元組型 1 0 uint8別名 Rune 字元型別 4 0 專用於儲存unicode編

易學筆記-go語言-第4章:基本結構和基本資料型別/4.4 變數/4.4.3 函式體內最簡單的變數初始化

函式體內最簡單的變數賦值 格式:  變數名 := 值 舉例: var goos string = os.Getenv("GOOS") fmt.Printf("The operating system is: %s\n", goos) //函式體內最

易學筆記-go語言-第4章:基本結構和基本資料型別/4.4 變數/4.4.2 宣告和賦值語句結合

宣告和賦值語句結合 格式:var identifier [type] = value 這裡的type是可選的,具體的型別參照: 第4章:基本結構和基本資料型別/4.2 Go 程式的基本結構和要素/4.2.8 型別 顯式型別舉例: //整型 var a&nbs

易學筆記-go語言-第4章:基本結構和基本資料型別/4.4 變數/4.4.4 函式體內並行初始化

函式體內並行賦值 在 第4章:基本結構和基本資料型別/4.4 變數/4.4.3 函式體內最簡單的變數賦值基礎上,多個變數同時賦值 舉例: 程式碼: a, b, c := 5, 10, "易學筆記"     fmt.Printf("a&n

易學筆記-Go語言-第4章:基本結構和基本資料型別/4.5 基本型別/4.5.2 整形

 整形 固定位元組數整形:與作業系統無關 int 和 uint 在 32 位作業系統上,它們均使用 32 位(4 個位元組),在 64 位作業系統上,它們均使用 64 位(8 個位元組)。 uintptr 存放指標 指定位元組

易學筆記-Go語言-第4章:基本結構和基本資料型別/4.5 基本型別/4.5.1 bool型別

 bool型別 關鍵字:bool,兩個結果:true 或者 false 何時回產生bool型別 ==:相等性筆記 !=:不相等性筆記 >、>=、<、<=:比較 可以進行的邏輯運算

易學筆記-Go語言-第4章:基本結構和基本資料型別/4.4 變數/4.4.7 變數的作用域

變數的作用域 變數的作用域有幾種: 包間變數:也是在函式外宣告的變數,而且第一個字母是大寫,所有本包函式或者包外函式都可見 全域性變數:在函式外宣告的變數,所有函式都可見 區域性變數:在本函式內部都可見 塊變數:僅僅在某個塊中可見,

第4章:基本結構和基本資料型別/4.2 Go 程式的基本結構和要素/4.2.5 可見性

易學筆記 十年IT經驗個人學習筆記分享: 開發語言:C/C++/JAVA/PYTHON/GO/JSP WEB架構:Servlets/springMVC/springBoot/springClound 容器架構:Docker容器/Docker叢集/Docker與微服務整合/

第4章:基本結構和基本資料型別/4.2 Go 程式的基本結構和要素/4.2.4 import:匯入包

易學筆記 十年IT經驗個人學習筆記分享: 開發語言:C/C++/JAVA/PYTHON/GO/JSP WEB架構:Servlets/springMVC/springBoot/springClound 容器架構:Docker容器/Docker叢集/Docker與微服務整合/

第4章:基本結構和基本資料型別/4.2 Go 程式的基本結構和要素/4.2.6 函式

易學筆記 十年IT經驗個人學習筆記分享: 開發語言:C/C++/JAVA/PYTHON/GO/JSP WEB架構:Servlets/springMVC/springBoot/springClound 容器架構:Docker容器/Docker叢集/Docker與微服務整合/

go--4大基本資料型別之整型

一:整型的定義 整型資料可簡單理解為存放整型數字的資料,如:-120,0,120。 二:整型資料的範圍 ①:整型型別 ②:無符整型(非負數整型),在①列表前加u即可,表數範圍將從0開始。 ③:int與uint的預設範圍 三:整型的簡單使用舉例 四:整型的使用注意事項 ①:int與u

易學筆記-Go語言-第4章:基本結構和基本資料型別/4.6 字串概述/4.6.1 字串表示

易學筆記 十年IT經驗個人學習筆記分享: 開發語言:C/C++/JAVA/PYTHON/GO/JSP WEB架構:Servlets/springMVC/springBoot/springClound 容器架構:Docker容器/Docker叢集/Docker與微服務整合/

易學筆記-Go語言-第4章:基本結構和基本資料型別/4.5 基本型別/4.5.6 位運算

易學筆記 十年IT經驗個人學習筆記分享: 開發語言:C/C++/JAVA/PYTHON/GO/JSP WEB架構:Servlets/springMVC/springBoot/springClound 容器架構:Docker容器/Docker叢集/Docker與微服務整合/

易學筆記-Go語言-第4章:基本結構和基本資料型別/4.5 基本型別/4.5.7 隨機數

易學筆記 十年IT經驗個人學習筆記分享: 開發語言:C/C++/JAVA/PYTHON/GO/JSP WEB架構:Servlets/springMVC/springBoot/springClound 容器架構:Docker容器/Docker叢集/Docker與微服務整合/

go學習(二)——基本資料型別基本語法

在 Go 程式語言中,資料型別用於宣告函式和變數。 資料型別的出現是為了把資料分成所需記憶體大小不同的資料,程式設計的時候需要用大資料的時候才需要申請大記憶體,就可以充分利用記憶體。 1.常見資料型別 Go 語言按類別有以下幾種資料型別: 1 布林型 布林型的值只可

參照Java學Go(二)—— 變數和常量、基本資料型別

      前一篇從語言界定、環境搭建、helloword和包結構與java做了對比,接下來就開始從go的語法上和java進行對比。說到語法,首先需要強調的一點就是“大小寫”,go和java一樣都是大小寫敏感的,另外有關大小寫的地方就是許可權相關:Go在大小寫方面它有一些預設

Go基本資料型別

Go語言的基礎資料型別 Go語言的資料型別主要分為四種:基礎型別(數字,字串,布林型別),複合型別(陣列,結構體),引用型別(指標,切片,字典,函式和通道),介面型別 整型 Go 語言的整型定義型別有符號型別主要有int8,int16,i

Go語言之基本資料型別以及一些規範

go基本資料型別 1.bool,一個位元組,值是true或者false,不可以用0或者1表示(java中boolean佔用4個位元組,而boolean作為陣列出現時,每個boolean佔用1個位元組)

Java中8種基本資料型別及其預設值

Java語言中有8種基本資料型別,基本情況彙總如下: Java中8種基本資料型別總結 序號 資料型別 大小/位 封裝類 預設值 可表示資料