Go 变量及基本数据类型2
生活随笔
收集整理的這篇文章主要介紹了
Go 变量及基本数据类型2
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
#### Go 變量及基本數據類型(二)
今天學習一下基本數據類型,包括整數類型,小數類型,字符類型
##### 整數類型
用來存放整數數值的, 如0,1,-10,2222等;
整數型的類型有:
案例:
package main import ("fmt""unsafe") func main(){// 整數類型有符號(默認情況下int 類型根據系統平臺有關,32 位系統int= int32// 64 位系統int = int64var i int = 1 var i1 int8 = 127fmt.Println(i,i1)fmt.Println(unsafe.Sizeof(i)) //8 變量占用的內存大小單位字節fmt.Println(unsafe.Sizeof(i1)) //1 變量占用的內存大小單位字節 }
案例:
package main import ("fmt""unsafe") func main(){//整數類型無稱號(默認情況下uint類型跟系統平臺有關,32 位系統uint = uint32// 64 位系統 uint = uint64var i uint = 266var i1 uint16 = 100fmt.Println(i,i1)fmt.Println(unsafe.Sizeof(i)) // 8fmt.Println(unsafe.Sizeof(i1)) // 2 }
package main import "fmt" func main(){var i int = 1000 // 無符號,內存大小跟系統平臺有關var i1 uint = 1 // 有符號內存大小跟系統平臺有關var i2 byte = 255 // 字節類型, 內存大小為1字節fmt.Println(i,i1,i2) }
整型的使用細節
1. int uint 的內存大小與系統有關;
2. Go 整型默認聲明為 int 類型
3. 在保證程序正確運行的情況下,盡量使用占用空間小的數據類型
package main import "fmt" func main(){// 默認類型為int var n = 100 // 格式化輸出fmt.Printf("n1 的類型為 %T \n,n) // %T 為類型// 使用占用空間小的數據類型var age byte = 21fmt.Println(age) }
##### 小數類型
小數類型是用來存儲小數的,如: 1.1,2.2,3.1414;
? package main
import "fmt"
func main(){var a float32 = 12.3var a1 float32 = -0.01var a2 float64 = -0.02fmt.Println(a,a1,a2)var a3 float32 = 1.00000088var a4 float32 = 1231.1111111var a5 float32 = 11231.1111111fmt.Println(a3) //1.0000008,尾數部分丟失, 精度損失fmt.Println(a4) //1231.1111,尾數部分丟失, 精度損失fmt.Println(a5) //11231.111,尾數部分丟失, 精度損失
}
小數型使用細節
1. Go 浮點類型有固定的范圍和字段長度,不受具體的系統影響;
2. Go 默認浮點類型為float64;
3. 開發中推薦使用float64;
4. 浮點類型常量兩種表示方式;
4.1 十進制數形式: 0.1415926 可以寫為: .1415926(***必須有小數點***);
4.2 科學計數法: 0.14e2 表示 0.14 *10 的2次方 = 14;
4.3 科學計數法: 0.14e-2 表示 0.14 / 10的2次方 = 0.0014;
##### 字符類型
Go 中沒有專門的字符類型,如要存儲單個字符(字母) ,一般使用byte 保存;
字符串就是一串固定長度的字符連接起來的字符序列,Go 的字符串由單個字節連接一起的,傳統的字符串由字符組成,而Go 的字符串由字節組成 ;
package main import "fmt" func main(){// 字節使用單引號表示var c byte = 'a'fmt.Println(c) // 直接打印byte 值,輸出的是該字節對應的unicode碼值// 輸出對應的字符需要格式化fmt.Printf("%c\n",c)// overflow 溢出//var c1 byte = '您' var c1 int = '您' fmt.Printf("c1=%c c1 對應的碼值為%d\n",c1,c1) }
字符類型使用細節
1. 如果保存的是ASCII 表的字符[0-9,a-z,A-Z],可以直接使用byte;
2. 如果保存的字符對應的碼值大于255(byte 表示最大數為255=int8),可以考慮表示范圍大的類型;
3. 如果想輸出字符,需要格式化輸出fmt.Printf("%c",c);
4. 字符常量是用單引號表示的單個字符;
5. Go 中允許使用轉義字符'\'將其后的字符轉變成特殊字符類型: 如: var c byte = '\n' 表示一個換行符;
6. Go 使用UTF-8 編碼: 一個英文字母為1字節,一個漢字為3字節;
7. 字符類型可以參與運算: 相當于一個整數
package main import "fmt" func main(){var a byte = 'a' fmt.Println(10+a) // 107 = 10 + 97 }
今天學習一下基本數據類型,包括整數類型,小數類型,字符類型
##### 整數類型
用來存放整數數值的, 如0,1,-10,2222等;
整數型的類型有:
| 類型 | 有無符號 | 占用存儲空間 | 表數范圍 |
| int8 | 有 | 1字節 | -128~127 |
| int16 | 有 | 2字節 | -2^15~2^15-1 |
| int32 | 有 | 4字節 | -2^31~2^31-1 |
| int64 | 有 | 8字節 | -2^63~2^63-1 |
| ? | ? | ? | ? |
案例:
package main import ("fmt""unsafe") func main(){// 整數類型有符號(默認情況下int 類型根據系統平臺有關,32 位系統int= int32// 64 位系統int = int64var i int = 1 var i1 int8 = 127fmt.Println(i,i1)fmt.Println(unsafe.Sizeof(i)) //8 變量占用的內存大小單位字節fmt.Println(unsafe.Sizeof(i1)) //1 變量占用的內存大小單位字節 }
整數類型的無符號類型
?
| 類型 | 有無符號 | 占用儲存空間 | 表數范圍 |
| uint8 | 無 | 1字節 | 0~255 |
| uint16 | 無 | 2字節 | 0~2^16-1 |
| uint32 | 無 | 4字節 | 0~2^32-1 |
| uint64 | 無 | 8字節 | 0~2^64-1 |
案例:
package main import ("fmt""unsafe") func main(){//整數類型無稱號(默認情況下uint類型跟系統平臺有關,32 位系統uint = uint32// 64 位系統 uint = uint64var i uint = 266var i1 uint16 = 100fmt.Println(i,i1)fmt.Println(unsafe.Sizeof(i)) // 8fmt.Println(unsafe.Sizeof(i1)) // 2 }
整數類型的其它類型??
| 類型 | 有無符號 | 占用存儲空間 | 表數范圍 |
| int | 有 | 32位系統4字節,64位系統8字節 | -2^31~2^31-1,-2^63~-2^63-1 |
| uint | 無 | 32位系統4字節,64位系統8字節 | 0~2^32-1,0~2^64-1 |
| rune | 有 | 4字節 | -2^31~2^31-1,表示一個unicode 碼 |
| byte | ?無 | ? 1字節 | 0~255 存儲字符時使用byte |
package main import "fmt" func main(){var i int = 1000 // 無符號,內存大小跟系統平臺有關var i1 uint = 1 // 有符號內存大小跟系統平臺有關var i2 byte = 255 // 字節類型, 內存大小為1字節fmt.Println(i,i1,i2) }
整型的使用細節
1. int uint 的內存大小與系統有關;
2. Go 整型默認聲明為 int 類型
3. 在保證程序正確運行的情況下,盡量使用占用空間小的數據類型
package main import "fmt" func main(){// 默認類型為int var n = 100 // 格式化輸出fmt.Printf("n1 的類型為 %T \n,n) // %T 為類型// 使用占用空間小的數據類型var age byte = 21fmt.Println(age) }
##### 小數類型
小數類型是用來存儲小數的,如: 1.1,2.2,3.1414;
| 類型 | 占用存儲空間 | 表數范圍 |
| 單精度float32 | 4字節 | -3.403E38~3.403E38 |
| 雙精度float64 | 8字節 | -1.798E308~1.798E308 |
小數型使用細節
1. Go 浮點類型有固定的范圍和字段長度,不受具體的系統影響;
2. Go 默認浮點類型為float64;
3. 開發中推薦使用float64;
4. 浮點類型常量兩種表示方式;
4.1 十進制數形式: 0.1415926 可以寫為: .1415926(***必須有小數點***);
4.2 科學計數法: 0.14e2 表示 0.14 *10 的2次方 = 14;
4.3 科學計數法: 0.14e-2 表示 0.14 / 10的2次方 = 0.0014;
##### 字符類型
Go 中沒有專門的字符類型,如要存儲單個字符(字母) ,一般使用byte 保存;
字符串就是一串固定長度的字符連接起來的字符序列,Go 的字符串由單個字節連接一起的,傳統的字符串由字符組成,而Go 的字符串由字節組成 ;
package main import "fmt" func main(){// 字節使用單引號表示var c byte = 'a'fmt.Println(c) // 直接打印byte 值,輸出的是該字節對應的unicode碼值// 輸出對應的字符需要格式化fmt.Printf("%c\n",c)// overflow 溢出//var c1 byte = '您' var c1 int = '您' fmt.Printf("c1=%c c1 對應的碼值為%d\n",c1,c1) }
字符類型使用細節
1. 如果保存的是ASCII 表的字符[0-9,a-z,A-Z],可以直接使用byte;
2. 如果保存的字符對應的碼值大于255(byte 表示最大數為255=int8),可以考慮表示范圍大的類型;
3. 如果想輸出字符,需要格式化輸出fmt.Printf("%c",c);
4. 字符常量是用單引號表示的單個字符;
5. Go 中允許使用轉義字符'\'將其后的字符轉變成特殊字符類型: 如: var c byte = '\n' 表示一個換行符;
6. Go 使用UTF-8 編碼: 一個英文字母為1字節,一個漢字為3字節;
7. 字符類型可以參與運算: 相當于一個整數
package main import "fmt" func main(){var a byte = 'a' fmt.Println(10+a) // 107 = 10 + 97 }
--------------最近在同步更新微信公眾號: "開胃咸菜", 大家可以關注交流
?轉載于:https://www.cnblogs.com/Mail-maomao/p/11357406.html
總結
以上是生活随笔為你收集整理的Go 变量及基本数据类型2的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: LuoGuP4721:【模板】分治 FF
- 下一篇: Go 变量及基本数据类型3