「这是我参与11月更文挑战的第8天,活动详情查看:2021最后一次更文挑战」
写在前面👀
今天主要聊聊Go的基础知识❣
一、声明与初始化
1.变量声明
- 标准格式
var <变量名> <数据类型>
1 | go复制代码 var a int |
- 批量格式
如果要声明的变量很多就可以用小括号( )
进行批量声明
1 | go复制代码 var( a int |
2.变量初始化与赋值
- 声明变量的时候同时赋值
- 语句*:
var <变量名> <数据类型> = 值
1 | go复制代码var a int =18 |
- 先声明后赋值
1 | go复制代码package main |
- 靠智能的编译器自动识别
- 语句*:
var <变量名> = 值
Go 编译器的智商已经高到可以根据变量的值来自动推断其类型,但也不是万能的,像设置一个具体的数据类型如int8,还得是用var a int8
1 | go复制代码 var( |
- 简短变量声明
- 语句*:
<变量名> := 值
注意:简短声明语法:=
只能在函数体内使用,属于局部变量;像用 var 定义的变量一般都在函数体外,是全局变量,属于包级别。
1 | go复制代码a := 18 //注意:等号左边的变量名必须是没有定义过的变量名,否则将会发生编译错误! |
3.常量
常量使用关键字 const
定义,用于存储不会改变的数据,所以它能定义的数据类型比较少,只能是布尔型、数字型(整数型、浮点型和复数)和字符串型。
- 标准定义格式(显式类型定义)
const <变量名> <数据类型> = 值
1 | go复制代码const name string = "倔强的牛角" |
- 隐式类型定义
const <变量名> = 值
也是由智能的编译器自动判断厂里的数据类型,但同样不是万能的,想要定义一个具体的数据类型还得用标准定义格式。
1 | go复制代码const name string = "倔强的牛角" |
- 常量的定义和初始化的方法与变量类似,但是常量不能用
:=
语法声明。
4.匿名变量
顾名思义,一个没有名字的变量,它用下划线 _
表示。匿名变量不占用命名空间,也不会占用内存,可以多次声明而不冲突。可以理解为工具人,今后我会在函数中讲他的实际用法。
二、基本数据类型
类型 | 长度(字节) | 零值 | 说明 |
---|---|---|---|
bool | 1 | false | true flase |
byte | 1 | 0 | uint8 |
rune | 4 | 0 | Unicode Code Point, int32 |
int, uint | 4或8 | 0 | 32 或 64 位 |
int8, uint8 | 1 | 0 | -128 ~ 127, 0 ~ 255,byte是uint8 的别名 |
int16, uint16 | 2 | 0 | -32768 ~ 32767, 0 ~ 65535 |
int32, uint32 | 4 | 0 | -21亿~ 21亿, 0 ~ 42亿,rune是int32 的别名 |
int64, uint64 | 8 | 0 | 3.4e38 |
float32 | 4 | 0.0 | |
float64 | 8 | 0.0 | 1.8e308 |
complex64 | 8 | 复数 | |
complex128 | 16 | 复数 | |
uintptr | 4或8 | 以存储指针的 uint32 或 uint64 整数 | |
string | “” | UTF-8 字符串 |
三、类型转换
和C语言不同的是,Go语言中只有强制类型转换,没有隐式类型转换。
转换格式:T(表达式)
T表示要转换的数据类型
写在后面
感谢观看✨
如有不足,欢迎指出💖
本文转载自: 掘金