golang變量uint、int大小溢出后的結(jié)果方式
golang變量uint、int大小溢出后的結(jié)果
golang中變量的大小溢出會是什么結(jié)果呢?
// uint8的取值范圍: 0 - 255
var a uint8 = 1
var b uint8 = 255
fmt.Println("減法:", a-b)這段代碼的結(jié)果是什么呢?
很明顯uint8的取值范圍是0-255之間,此時(shí)已經(jīng)超出范圍了,那么超出后的結(jié)果是什么呢?
0或者0報(bào)錯(cuò)?
我也不知道,一起來看看最后的結(jié)果是怎樣?
package main
import "fmt"
//兩個(gè)uint類型的數(shù)字相減后小于0
func main() {
var a uint8 = 1
var b uint8 = 255
fmt.Println("減法:", a-b)
fmt.Println("加法:", a+b)
fmt.Println("乘法:", a*b)
// 結(jié)果為:
// 減法: 2
// 加法: 0
// 乘法: 255
}其它類型和此情況類似
例如int64:
package main
import "fmt"
// int64 Range: -9223372036854775808 through 9223372036854775807.
func main() {
var a int64 = -8223372036854775807
var b int64 = 9223372036854775807
fmt.Println("減法:", a-b)
fmt.Println("乘法:", a*b)
// 結(jié)果為:
// 減法: 1000000000000000002
// 乘法: -1000000000000000001
}總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Golang使用ReverseProxy實(shí)現(xiàn)反向代理的方法
本文介紹了如何使用Golang的ReverseProxy實(shí)現(xiàn)反向代理,包括源碼結(jié)構(gòu)解析和官方單機(jī)示例NewSingleHostReverseProxy,同時(shí)指出,若要實(shí)現(xiàn)負(fù)載均衡,需要自行開發(fā),還提供了一個(gè)簡單的HTTP服務(wù)用于測試,感興趣的朋友跟隨小編一起看看吧2024-09-09
golang實(shí)現(xiàn)瀏覽器導(dǎo)出excel文件功能
這篇文章主要介紹了golang實(shí)現(xiàn)瀏覽器導(dǎo)出excel文件功能,文章通過golang導(dǎo)出excel文件返回給web,實(shí)現(xiàn)瀏覽器導(dǎo)出excel文件功能,具有一定的參考價(jià)值,需要的小伙伴可以參考一下2022-03-03
golang踩坑實(shí)戰(zhàn)之channel的正確使用方式
Golang?channel是Go語言中一個(gè)非常重要的特性,除了用來處理并發(fā)編程的任務(wù)中,它還可以用來進(jìn)行消息傳遞和事件通知,這篇文章主要給大家介紹了關(guān)于golang踩坑實(shí)戰(zhàn)之channel的正確使用方式,需要的朋友可以參考下2023-06-06
golang中context.WithValue的使用規(guī)范問題小結(jié)
本文主要介紹了golang中context.WithValue的使用規(guī)范問題,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2025-02-02
go實(shí)現(xiàn)一個(gè)內(nèi)存緩存系統(tǒng)的示例代碼
本文主要介紹了go實(shí)現(xiàn)一個(gè)內(nèi)存緩存系統(tǒng)的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2024-10-10

