golang变量uint、int大小溢出后的结果方式

 更新时间:2024年12月20日 09:46:39   作者:牛宝贝儿哦  
在Go语言中,变量的大小溢出后,`uint`类型会回绕到最小值,而`int`类型会回绕到最大值的相反数,例如,`uint8`溢出后会变成0,`int64`溢出后会变成最小的负数

golang变量uint、int大小溢出后的结果

golang中变量的大小溢出会是什么结果呢?

	// uint8的取值范围: 0 - 255
    var a uint8 = 1
	var b uint8 = 255
	fmt.Println("减法:", a-b)

这段代码的结果是什么呢?

很明显uint8的取值范围是0-255之间,此时已经超出范围了,那么超出后的结果是什么呢?

0或者0报错?

我也不知道,一起来看看最后的结果是怎样?

package main

import "fmt"

//两个uint类型的数字相减后小于0
func main() {
	var a uint8 = 1
	var b uint8 = 255
	fmt.Println("减法:", a-b)
	fmt.Println("加法:", a+b)
	fmt.Println("乘法:", a*b)
	// 结果为:
	// 减法: 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)
	// 结果为:
	// 	减法: 1000000000000000002
	// 乘法: -1000000000000000001
}

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • go grpc安装使用教程

    go grpc安装使用教程

    gRPC是由Google主导开发的RPC框架,使用HTTP/2协议并用ProtoBuf作为序列化工具。这篇文章主要介绍了go grpc安装使用教程,需要的朋友可以参考下
    2018-02-02
  • 彻底理解golang中什么是nil

    彻底理解golang中什么是nil

    这篇文章主要介绍了golang中的nil用法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-04-04
  • Go语言实现基于websocket浏览器通知功能

    Go语言实现基于websocket浏览器通知功能

    这篇文章主要介绍了Go语言实现基于websocket浏览器通知功能,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-07-07
  • 一文详细谈谈GoLang的panic和error

    一文详细谈谈GoLang的panic和error

    说是初识,并不是说第一次使用error和panic包,而是第一次特地去了解golang中的这两个机制,下面这篇文章主要给大家介绍了关于如何通过一文详细谈谈GoLang中panic和error的相关资料,需要的朋友可以参考下
    2022-12-12
  • Go操作各大消息队列教程(RabbitMQ、Kafka)

    Go操作各大消息队列教程(RabbitMQ、Kafka)

    消息队列是一种异步的服务间通信方式,适用于无服务器和微服务架构,本文主要介绍了Go操作各大消息队列教程(RabbitMQ、Kafka),需要的朋友可以了解一下
    2024-02-02
  • golang开发安装go-torch火焰图操作步骤

    golang开发安装go-torch火焰图操作步骤

    这篇文章主要为大家介绍了golang开发安装go-torch火焰图操作步骤
    2021-11-11
  • go项目打包部署的完整步骤

    go项目打包部署的完整步骤

    之前断断续续的接触到项目部署,一直没有详细的了解部署,于是最近就好好的专研一下项目的部署,下面这篇文章主要给大家介绍了关于go项目打包部署的相关资料,需要的朋友可以参考下
    2022-09-09
  • 如何通过go自定义一个分页插件

    如何通过go自定义一个分页插件

    分页是我们日常开发中经常会遇到的一个需求,下面这篇文章主要给大家介绍了关于如何通过go自定义一个分页插件的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2024-03-03
  • Golang内存管理之内存分配器详解

    Golang内存管理之内存分配器详解

    Go内存分配器的设计思想来源于TCMalloc,全称是Thread-Caching Malloc,核心思想是把内存分为多级管理,下面就来和大家深入聊聊Go语言内存分配器的使用吧
    2023-06-06
  • 一文带你熟悉Go语言中的for循环

    一文带你熟悉Go语言中的for循环

    这篇文章主要和大家分享一下Go语言中for循环的定义与使用,文中的示例代码讲解详细,对我们学习Go语言有一定的帮助,需要的可以参考一下
    2022-11-11

最新评论