目錄
前言
一、整數型別
1.整型的使用細節
二、小數型別/浮點型
1.基本介紹
2.浮點型使用細節
三、字符型別
1.基本介紹
2.字符型別使用細節
三、string 型別
四、基本資料型別的默認值
五、基本資料型別的相互轉換
1.基本語法
2.基本資料型別相互轉換的注意事項
六、基本資料型別和 string 的轉換
1.基本型別轉 string 型別
方式 1:fmt.Sprintf("%引數", 運算式)
方式 2:使用 strconv 包的函式
2.string 型別轉基本資料型別
3、string 轉基本資料型別的注意事項
前言

提示:以下是本篇文章正文內容,下面案例可供參考
一、整數型別


int 的其它型別的說明:

在go中沒有像c++那樣char short lang double等型別了,用上面的來替換了
1.整型的使用細節
1) Golang 各整數型別分:有符號和無符號,int uint 的大小和系統有關,
2) Golang 的整型默認宣告為 int 型

在go中 Printf()用來做格式化的輸出,查看什么型別 用%T
3) 如何在程式查看某個變數的位元組大小和資料型別

在go中 我們可以用unsafe包中的Sizeof() 來查看相關型別的大小 注意一定是大寫
二、小數型別/浮點型
1.基本介紹
小數型別就是用于存放小數的

對上圖的說明:
1) 關于浮點數在機器中存放形式的簡單說明,浮點數=符號位+指數位+尾數位 說明:浮點數都是有符號的.

2) 尾數部分可能丟失,造成精度損失, -123.0000901

說明:float64 的精度比 float32 的要準確. 如果我們要保存一個精度高的數,則應該選用 float64
3) 浮點型的存盤分為三部分:符號位+指數位+尾數位 在存盤程序中,精度會有丟失
2.浮點型使用細節
- 1) Golang 浮點型別有固定的范圍和欄位長度,不受具體 OS(作業系統)的影響,
- 2) Golang 的浮點型默認宣告為 float64 型別
- 3) 浮點型常量有兩種表示形式 十進制數形式:如:5.12 .512 (必須有小數點)
- 科學計數法形式:如:5.1234e2 = 5.12 * 10 的 2 次方 5.12E-2= 5.12/10 的 -2次方

三、字符型別
1.基本介紹
Golang 中沒有專門的字符型別,如果要存盤單個字符(字母),一般使用 byte 來保存, 字串就是一串固定長度的字符連接起來的字符序列,Go 的字串是由單個位元組連接起來的,也 就是說對于傳統的字串是由字符組成的,而 Go 的字串不同,它是由位元組組成的,

對上面代碼說明
- 如果我們保存的字符在 ASCII 表的,比如[0-1, a-z,A-Z..]直接可以保存到 byte
- 如果我們保存的字符對應碼值大于 255,這時我們可以考慮使用 int 型別保存
- 如果我們需要安裝字符的方式輸出,這時我們需要格式化輸出,即 fmt.Printf(“%c”, c1).
2.字符型別使用細節
- 字符常量是用單引號('')括起來的單個字符,例如:var c1 byte = 'a' var c2 int = '中' var c3 byte = '9'
- Go 中允許使用轉義字符 '\’來將其后的字符轉變為特殊字符型常量,例如:var c3 char = ‘\n’ // '\n'表示換行符
- Go 語 言 的 字 符 使 用 UTF-8 編 碼 , 如 果 想 查 詢 字 符 對 應 的 utf8 碼 值 http://www.mytju.com/classcode/tools/encode_utf8.asp
- 在 Go 中,字符的本質是一個整數,直接輸出時,是該字符對應的 UTF-8 編碼的碼值,
- 可以直接給某個變數賦一個數字,然后按格式化輸出時%c,會輸出該數字對應的 unicode 字符
- 字符型別是可以進行運算的,相當于一個整數,因為它都對應有 Unicode 碼

三、string 型別
1) 字串一旦賦值了,字串就不能修改了:在 Go 中字串是不可變的,

3) 字串的兩種表示形式
(1) 雙引號, 會識別轉義字符
(2) 反引號,以字串的原生形式輸出,包括換行和特殊字符,可以實作防止攻擊、輸出源代碼等效果

結果

4) 字串拼接方式

5) 當一行字串太長時,需要使用到多行字串,可以如下處理

四、基本資料型別的默認值
在 go 中,資料型別都有一個默認值,當程式員沒有賦值時,就會保留默認值,在 go 中,默認值 又叫零值,

五、基本資料型別的相互轉換
Golang 和 java / c 不同,Go 在不同型別的變數之間賦值時需要顯式轉換,也就是說 Golang 中數 據型別不能自動轉換,
1.基本語法
運算式 T(v) 將值 v 轉換為型別 T
- T: 就是資料型別,比如 int32,int64,float32 等等
- v: 就是需要轉換的變數

2.基本資料型別相互轉換的注意事項
1) Go 中,資料型別的轉換可以是從 表示范圍小-->表示范圍大,也可以 范圍大--->范圍小
2) 被轉換的是變數存盤的資料(即值),變數本身的資料型別并沒有變化!

3) 在轉換中,比如將 int64 轉成 int8 【-128---127】 ,編譯時不會報錯,只是轉換的結果是按 溢位處理,和我們希望的結果不一樣, 因此在轉換時,需要考慮范圍.


六、基本資料型別和 string 的轉換
1.基本型別轉 string 型別
方式 1:fmt.Sprintf("%引數", 運算式)

package main
import(
"fmt"
)
func main(){
var n int8 =99
var str string
str = fmt.Sprintf("%d",n) //將基本資料型別轉換成string型別
fmt.Printf("str的資料型別是%T str=%v",str,str)
}
fmt.Sprintf 將基本資料型別轉換為string型別

方式 2:使用 strconv 包的函式


2.string 型別轉基本資料型別


package main
import(
"fmt"
"strconv"
)
func main(){
var str string="true"
var b bool
b , _ =strconv.ParseBool(str)
fmt.Printf("b型別為 %T b=%v\n",b,b)
var str1 string="12345"
var n int64
n , _=strconv.ParseInt(str1,10,54)//將字串傳喚為整數
//10代表十進制 64代表64位
fmt.Printf("n型別為 %T n=%v\n",n,n)
}
ParseBool有兩個回傳值,要注意,
3、string 轉基本資料型別的注意事項
在將 String 型別轉成 基本資料型別時,要確保 String 型別能夠轉成有效的資料,比如 我們可以 把 "123" , 轉成一個整數,但是不能把 "hello" 轉成一個整數,如果這樣做,Golang 直接將其轉成 0 , 其它型別也是一樣的道理. float => 0 bool => false

總結
上面我們系統的了解了golang中的基本資料型別和一些注意事項,但是在這里我還需要強調一些和c++/java不同的一些注意事項,比如我們定義變數 變數名和包名,
1) 包名:保持 package 的名字和目錄保持一致,盡量采取有意義的包名,簡短,有意義,不要和 標準庫不要沖突 fmt

2) 變數名、函式名、常量名:采用駝峰法
var stuName string = “tom” 形式: xxxYyyyyZzzz ..
3) 如果變數名、函式名、常量名首字母大寫,則可以被其他的包訪問;如果首字母小寫,則只能 在本包中使用 ( 注:可以簡單的理解成,首字母大寫是公開的,首字母小寫是私有的) ,在 golang 沒有 public , private 等關鍵字.


轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/402473.html
標籤:其他

