[TOC]
## **1:兩大數據類型**

## **2:整數類型的基本介紹**
例如:
0,1,2,3,1232,12313213
1,有符號的(這里的int默認是有符號的)

<br>
2,無符號的(這里的uint是默認無符號的)

<br>
3,整數的類型

<br>
4,整數使用細節
1. Golang各整數類型分: 有符號和無符號,int uint 的大小和系統有關。
2. Golang的整型默認聲明為int 型
```
package main
import "fmt"
func main(){
var sum = 100
fmt.Println(sum)
}
```
3. 如何在程序查看某個變量的字節大小和數據類型(使用較多)
----->查看類型
```
package main
import "fmt"
func main(){
var sum = 100
fmt.Printf("sum of type is:%T",sum)// Printf()就是格式化輸出
}
```
**運行結果**
```
sum of type is:int
```
----->查看字節大小
```
package main
import (
"fmt"
"unsafe"
)
// 如何在某個程序中查看變量字節大小
func main(){
var sum int64 = 1000000
res := unsafe.Sizeof(sum) // unsafe這個函數可以返回字節大小
fmt.Printf("sum of type is:%T\tsum of byte is:%d",sum,res)// Printf()就是格式化輸出
}
```
**運行結果:**
```
sum of type is:int64 sum of byte is:8
```
4.Golang程序 中整型變量在使用時,遵守保小不保大的原則,即:在保證程序正
確運行下,盡量使用占用空間小的數據類型。[如: 年齡]
<br>
5.bit:計算機中的最小存儲單位。byte:計算機中基本存儲單元。[二進制再詳細說]
一個byte=8個bit
<br>
<br>
## **3:浮點類型(float32/64)**
### 浮點類型
(也叫小數類型)例如:1.2,1.3,2.33,15.8
案例:
```
package main
import (
"fmt"
)
func main(){
var price float32 = 10.99
fmt.Println("price of value is :",price)
}
```
**運行結果:**
`price of value is : 10.99`
<br>
<br>
### **浮點類型分類**

說明一下:
1,關于浮點數在機器中存放形式的簡單說明,,浮點數\=符號位+指數位+尾數位
```
package main
import (
"fmt"
)
func main(){
var price float32 = 10.99
fmt.Println("price of value is :",price)
}
```
**運行結果:**
`price of value is : 10.99`
2,尾數部分可能丟失,造成精度損失。\-123.0000901
說明:
2.1:Float64位的float32準確
2.2:如果我們要保存一個精度更高的則使用float64位
```
package main
import (
"fmt"
)
func main(){
var price float32 = 10.99999111234
var sum float64 = 11.123456789
fmt.Printf("price:float32=%s sum:float64=%s\r",price,sum)
}
```
**運行結果:**
```
price:float32=%!s(float32=10.999991) sum:float64=%!s(float64=11.123456789)
```
上實例中,price失去了精度
3,浮點型的存儲分為三部分:符號位+指數位+尾數位在存儲過程中,精度會有丟失
## **4:浮點型使用細節:**
1) Golang 浮點類型有固定的范圍和字段長度,不受具體OS(操作系統)的影響。
2) Golang 的浮點型默認聲明為float64類型。
```
package main
import (
"fmt"
)
func main(){
var price = 10.1
fmt.Printf("price of type is:%T",price)
}
```
**運行結果**
```
price of type is:float64
```
3:浮點型常量有兩種表示形式
3.1:十進制數形式:如: 5.12 ..512 (必須有小數點)
```
package main
import (
"fmt"
)
func main(){
var price = 10.1
price1 := .999
fmt.Printf("price of value is:%T price value is:%S",price,price1)
}
```
**運行結果:**
```
price of value is:float64 price value is:%!S(float64=0.999)
```
3.2:科學計數法形式:如: 5.1234e2 = 5.12\* 10的2次方5.12E-2 = 5.12/10的2次方
```
package main
import (
"fmt"
)
func main(){
sum := 5.1234e2 // 5.1234 * 10的2次方
sum1 := 5.1234E2 // 5.1234 * 10的2次方
sum2 := 5.1234e-2 // 5.1234 / 10的2次方
fmt.Println("sum=",sum,"sum1=",sum1,"sum2=",sum2)
}
```
**運行結果:**
```
sum= 512.34 sum1= 512.34 sum2= 0.051234
```
3.3:通常情況下,應該使用float64, 因為它比float32更精確。
- Golang語言之旅
- 第一章:初始小節以及安裝
- 一:Golang語言特性
- 二:Windows上安裝Go語言開發包
- 三:在Mac OS上安裝Go語言開發包
- 第二章:GO語言注意事項
- 一:Dos的常用指令
- 第三章:Go初識小菜
- 一:Go語言之變量與常量
- 二:Go內置值-引用類型
- 三:基本的數據類型
- 四:字符串(char)
- 五:布爾類型(bool)
- 六:字符串類型(string)
- 七:基本數據類型的默認值
- 八:基本數據類型的互相轉換
- 九:基本數據類型和string類型的相互轉換
- 十:Golang指針
- 十一:值類型和引用類型
- 十二:標識符和命名規范
- 十三:系統保留關鍵字and預定義標識符
- 十四:fmt常用方法解析
- 第四章:Go運算符
- 一:運算符的基本介紹
- 二:算術運算符
- 2.1:算數運算符細節
- 三:關系運算符
- 3.1:關系運算符細節
- 四:邏輯運算符
- 4.1:邏輯運算符細節及案例
- 五:Go賦值運算符
- 5.1:案例演示賦值運算符的基本使用
- 5.2:賦值運算符的特點
- 六:Go位運算符
- 七:其他運算符
- 八:運算符的優先級
- 九:控制臺輸入語句
- 十:進制
- 十一:位運算
- 第五章:流程控制大綱
- 一:if語句
- 二:switch語句
- 三:for循環
- 第六章:函數-包-錯誤處理
- 一:Go函數
- 二:Go包
- 三:匿名函數
- 四:閉包
- 五:函數defer
- 六:函數參數的傳遞方式
- 七:變量的作用域
- 八:時間和日期相關函數
- 九:new和recover異常
- 十:數組(Array)切片(Section)
- 十一:切片(slice)
- 十二:3 數組的排序和查找
- 第七章:Map
- 第一節:Map基礎認識
- 第二節:Map初始化和make
- 第三節:Map增刪改查
- 第四節:Map的切片
- 第五節:Map的注意事項
- 第八章:面向對象(上)
- 第一節:結構體(值類型)
- 第二節:方法
- 第三節:面向對象編程應用實例
- 第九章:面向對象(下)
- 第一節:面向對象之抽象
- 第二節:面向對象之繼承
- 第三節:面向對象之多態
- 第四節:接口
- 第十章:文件操作
- 第一節:文件基本介紹
- 第二季:寫文件實例操作
- 第三節:JSON
- 第十一章:單元測試
- 第一節:單元測試介紹
- 第二節:單元測試案例
- 第三節:單元測試總結
- 第四節:單元測試案例
- 第十二章:goroutine和channel
- 第一節:goroutine基本介紹
- 第二節:goroutine入門案例
- 第三節:goroutione調度模型
- 第四節:Golang設置運行的CPU數量
- 第十二章:channel
- 第一節:channel基本介紹
- 第二節:channel基本使用
- 第三節:channel案例演示
- 第四節:channel 使用的注意事項
- 第五節:channel練習題
- 第六節:channel的遍歷和關閉
- 第七節:goroutione和channel結合
- 第八節:channel細節處理
- 第十二章:并發模式
- 第十三章:反射reflect
- 第一節:反射基本介紹
- 第二節:反射重要的函數和概念
- 第三節:反射快速入門案例
- 第四節:反射注意事項
- 第五節:反射練習題
- 第六節:反射最佳實踐