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種基本資料型別總結 序號 資料型別 大小/位 封裝類 預設值 可表示資料