首页 > 其他分享 >Go语言精进之路读书笔记第9条——使用无类型常量简化代码

Go语言精进之路读书笔记第9条——使用无类型常量简化代码

时间:2024-02-01 20:56:36浏览次数:21  
标签:精进 const 常量 读书笔记 int 类型 myInt Go type

9.1 Go常量溯源

绝大多数情况下,Go常量在声明时并不显式指定类型,也就是说使用的是无类型常量(untyped constant)。

9.2 有类型常量带来的烦恼

如果有类型常量与变量的类型不同,那么混合运算的求值操作会报错:

type myInt int
const n myInt = 13
// const m int = n + 5 //编译器错误提示:cannot use n + 5 (type myInt) as type int in const initializer
const m int = int(n) + 5

9.3 无类型常量消除烦恼,简化代码

  • 无类型常量可以直接赋值给自定义类型的变量,无类型常量在参与变量赋值和计算过程时无须显式类型转换
  • 无类型常量的默认类型:无类型的布尔型常量、整数常量、字符常量、浮点数常量、复数常量、字符串常量对应的默认类型分别为bool、int、int32(rune)、float64、complex128和string
const (
    a = 5
    pi = 3.1415926
    s = "Hello, Gopher"
    c = 'a'
    b = false
)

type myInt int
type myFloat float32
type myString string

func main() {
    var j myInt = a
    var f myFloat = pi
    var str myString = s
    var e float64 = a + pi
}

标签:精进,const,常量,读书笔记,int,类型,myInt,Go,type
From: https://www.cnblogs.com/brynchen/p/18002090

相关文章

  • Go语言精进之路读书笔记第10条——使用iota实现枚举常量
    Go的const语法提供了隐式重复前一个非空表达式的机制const(Apple,Banan=11,22Straberry,GrapePear,Watermelon)//等价于const(Apple,Banan=11,22Straberry,Grape=11,22Pear,Watermelon=11,22)iota是Go语言的一个预定义......
  • Go语言精进之路读书笔记第8条——使用一致的变量声明形式
    Go语言常见的变量声明形式varaint32varsstring="hello"vari=13n:=17var(crlf=[]byte("\r\n")colonSpace=[]byte(":"))8.1包级变量的声明形式1.声明并同时显式初始化//Go编译器会自动根据等号右侧的InitExpression表达式求值的类型确定左侧......
  • RunnerGo低代码测试体验
    RunnerGo是基于go语言自研的一款企业级全栈式测试平台,采用Apache-2.0license开源协议,涵盖接口测试、性能测试、UI测试和项目管理等功能,并独创“拖拉拽”的方式快速编排真实测试场景的功能,加速产品交付周期、保证产品交付质量,为企业测试团队和产研团队提供一站式解决方案,是目前市......
  • MongoDB由浅入深(查询)
    //基础查询db.orderSlic.find();//根据ID查询db.orderSlic.find({_id:54708407});//范围查询db.orderSlic.find({"_id":{"$gte":54708407,"$lte":54708409}});//多字段分组统计db.orderSlic.aggregate([{$group:{_id:{shopId:"$......
  • laravel生成二维码,并添加背景图片,图标logo
    1、安装组件composerrequiresimplesoftwareio/simple-qrcode1.3.*在 config/app.php 注册服务提供者:SimpleSoftwareIO\QrCode\QrCodeServiceProvider::class同样在 config/app.php 添加 QrCode 门面:'QrCode'=>SimpleSoftwareIO\QrCode\Facades\QrCode::class2......
  • django 项目中,用户登录功能中间件的应用
    不是完整的Demo,简单记录下。在Django项目中,中间件(Middleware)是一个轻量级、底层的插件系统,用于全局修改Django的输入或输出。每个中间件是一个处理请求或响应的钩子,可以在视图执行之前或之后运行代码。对于用户登录功能,中间件可以用来处理多种任务,比如:验证用户的登录状态:在每......
  • Go进程内存占用那些事(一)
    为什么要探究这个问题?作为基础设施供应商,自己的服务占用多少内存,为什么要占用这么多内存,需要能说的清楚。作为一个云计算开发,这点问题都弄不清楚,说不过去。§0x01范围讨论的只限于LinuxX86平台下,因为实用第一。内存页大小为4KiB。目标:说清楚一个大型的Go进程内存消耗在了哪......
  • Mac 安装goland2023.3
    DataGrip/Goland相关工具链接:https://pan.baidu.com/s/1UTSusTKPPnIqxdKCAi1oKg提取码:9wej对应的激活码此处获取:https://docs.qq.com/doc/DZWFmak1WcVBhdENumac使用命令shxxx.sh执行如果原来有安装goland的话,需要先卸载干净访达中在资源库中清除......
  • google play(谷歌) 订阅接入 支付后台配置
    一、Google开发者平台配置回调订阅后台地址https://console.cloud.google.com/projectselector2/cloudpubsub/topic/list 新建主题   创建订阅输入回调服务端地址(付款成功后进行回调) 并且需要设置 [email protected]......
  • go build 国内 失败
    *[Go国内加速:Go国内加速镜像|Go技术论坛](https://learnku.com/go/wikis/38122) *[SECURITYERRORThisdownloaddoesNOTmatchanearlierdownloadrecordedingo.sum.Thebitsmayhavebeenreplacedontheoriginserver,oranattackermayhaveintercepte......