当前位置: 首页 > news >正文

Go 语言中的基本类型以及变量声明与初始化(Let‘s Go 三)

笔者个人网站:秋码记录

本文已首发于秋码记录:Go 语言中的基本类型以及变量声明与初始化(Let’s Go 三)

1、基本类型

作为一门编程语言,Go也和其他同是编程语言一样,Go也有属于自己的一套基本类型,好了,闲话少扯,那就来看看Go中有哪些基本类型呢。

Go语言的基本类型有:

  • bool
  • string
  • int、int8、int16、int32、int64
  • uint、uint8、uint16、uint32、uint64、uintptr
  • byte // uint8 的别名
  • rune // int32 的别名 代表一个 Unicode 码
  • float32、float64
  • complex64、complex128

1、整型

而从有无符号可分为两类。

有符号按长度划分: intint8int16int32int64

无符号按长度划分:uintuint8uint16uint32uint64

Unicode字符rune类型是和int32等价的类型,通常用于表示一个Unicode码点。这两个名称可以互换使用。同样byte也是uint8类型的等价类型,byte类型一般用于强调数值是一个原始的数据而不是一个小的整数。

uintptr以存储指针的 uint32 或 uint64 整数。

2、浮点型

Go有两种浮点类型,分别为float32float64,没有什么float以及double哦!

3、布尔型

这与其他编程语言一样,有true(真)和flase两个值。

4、复数

复数的默认类型是complex128(64位实数 + 64位虚数)
还有一种是complex64(32位实数 + 32位虚数)。

2、变量声明以及初始化

var name type

说明:var是声明变量的关键词,name是要定义的变量名称,type是变量的类型。

其实,Go语言是规避定义指针时类型模糊的缘故。

int* a,b;  //这时,b并不是指针类型,而只是整型
int *c,*d; //而只有这样,从和d才都是指针变量呢

而在Go中是这样定义指针的

var a,b *int

若你觉得每行声明变量比较繁琐,可以使用批量声明变量的。

使用关键字 var 和圆括号,可以将一组变量定义放在一起。

在这里插入图片描述

刚才只是声明了变量,并没有给他赋值,虽然可以只是只声明变量,而后赋值也是可以的。但可以在声明变量是并初始化变量,也就是给变量赋初始值。

var a int = 6
var b,c String = "hello","qiucode.cn"
var (
    name string = "qiucode.cn"
    age int = 4
)

其实还有一种简短格式,

变量名 := 初始值

使用这种简短需要注意几点:

  • 1、定义变量,同时显示初始化。
  • 2、不能提供数据类型以及var关键词
  • 3、只能在函数内部使用。

在这里插入图片描述

很显然,在函数外部声明,编译报错

在这里插入图片描述

相关文章:

  • 前端基础01:HTML
  • java计算机毕业设计前台点菜系统源代码+数据库+系统+lw文档
  • QT QString编辑字符串-查询-类型转换操作
  • NFT重构票务系统
  • 国际电工委员会发布标准 IEC 62077:2022 《光纤互连设备和无源元件-光纤环行器-通用规范》
  • vue3.0--3.isRef、toRefs、toRef、readonly,公共数据配置、网络配置、app.use插件配置、路由配置
  • 【python】(十八)python常用第三方库——pymysql
  • 供应水溶性喹啉腈磺酸盐母体,QM-SO3,CAS:1800102-18-4
  • Unity Shader LOD详解
  • (附源码)spring boot火车票售卖系统 毕业设计 211004
  • Linux环境:Nginx配置SSL证书,https协议请求 443端口
  • git tag相关
  • HTML篇三——(1)
  • Android移动应用开发之六种布局
  • Nginx 学习笔记
  • 【跃迁之路】【669天】程序员高效学习方法论探索系列(实验阶段426-2018.12.13)...
  • Docker入门(二) - Dockerfile
  • ES2017异步函数现已正式可用
  • Fabric架构演变之路
  • JSDuck 与 AngularJS 融合技巧
  • Making An Indicator With Pure CSS
  • MD5加密原理解析及OC版原理实现
  • miniui datagrid 的客户端分页解决方案 - CS结合
  • python 装饰器(一)
  • 大快搜索数据爬虫技术实例安装教学篇
  • 前端 CSS : 5# 纯 CSS 实现24小时超市
  • 少走弯路,给Java 1~5 年程序员的建议
  • 用mpvue开发微信小程序
  • ​【原创】基于SSM的酒店预约管理系统(酒店管理系统毕业设计)
  • # MySQL server 层和存储引擎层是怎么交互数据的?
  • $(function(){})与(function($){....})(jQuery)的区别
  • (安卓)跳转应用市场APP详情页的方式
  • (补)B+树一些思想
  • (每日持续更新)信息系统项目管理(第四版)(高级项目管理)考试重点整理第3章 信息系统治理(一)
  • (转)Android学习笔记 --- android任务栈和启动模式
  • (转)AS3正则:元子符,元序列,标志,数量表达符
  • ****** 二 ******、软设笔记【数据结构】-KMP算法、树、二叉树
  • .bat批处理(五):遍历指定目录下资源文件并更新
  • .dat文件写入byte类型数组_用Python从Abaqus导出txt、dat数据
  • .L0CK3D来袭:如何保护您的数据免受致命攻击
  • .NET : 在VS2008中计算代码度量值
  • .NET 8.0 发布到 IIS
  • .NET CF命令行调试器MDbg入门(四) Attaching to Processes
  • .NET Core 控制台程序读 appsettings.json 、注依赖、配日志、设 IOptions
  • .net分布式压力测试工具(Beetle.DT)
  • .sh 的运行
  • .vimrc php,修改home目录下的.vimrc文件,vim配置php高亮显示
  • @拔赤:Web前端开发十日谈
  • [ vulhub漏洞复现篇 ] Celery <4.0 Redis未授权访问+Pickle反序列化利用
  • [2015][note]基于薄向列液晶层的可调谐THz fishnet超材料快速开关——
  • [8481302]博弈论 斯坦福game theory stanford week 1
  • [ARM]ldr 和 adr 伪指令的区别
  • [ASP.NET 控件实作 Day7] 设定工具箱的控件图标
  • [BZOJ 3531][Sdoi2014]旅行(树链剖分+线段树)
  • [cogs2652]秘术「天文密葬法」