Go语言入门之基础知识 写在前面👀 写在后面

「这是我参与11月更文挑战的第8天,活动详情查看:2021最后一次更文挑战

写在前面👀

今天主要聊聊Go的基础知识❣

一、声明与初始化

1.变量声明

  • 标准格式
    var <变量名> <数据类型>
1
go复制代码  var a int
  • 批量格式
    如果要声明的变量很多就可以用小括号( )进行批量声明
1
2
3
4
go复制代码  var( a int
b bool
c string
)

2.变量初始化与赋值

  • 声明变量的时候同时赋值
  • 语句*var <变量名> <数据类型> = 值
1
go复制代码var a int =18
  • 先声明后赋值
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
go复制代码package main

import "fmt"

var (
a int
b bool //先声明变量
c string
)

func main() {
a = 18
b = true //后给变量赋值
c = "倔强的牛角"
fmt.Println(a, b, c)
}
  • 靠智能的编译器自动识别
  • 语句*var <变量名> = 值 Go 编译器的智商已经高到可以根据变量的值来自动推断其类型,但也不是万能的,像设置一个具体的数据类型如int8,还得是用var a int8
1
2
3
4
5
go复制代码   var( 
a = 15
b = true
c = "倔强的牛角"
)
  • 简短变量声明
  • 语句*<变量名> := 值 注意:简短声明语法 := 只能在函数体内使用,属于局部变量;像用 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表示要转换的数据类型

写在后面

感谢观看✨

如有不足,欢迎指出💖

本文转载自: 掘金

开发者博客 – 和开发相关的 这里全都有

0%