Go语言入门之基础知识

943 阅读3分钟

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

写在前面👀

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

一、声明与初始化

1.变量声明

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

2.变量初始化与赋值

  • 声明变量的时候同时赋值 语句var <变量名> <数据类型> = 值
var a int =18
  • 先声明后赋值
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
   var( 
        a = 15
	b = true
	c = "倔强的牛角"
  )      
  • 简短变量声明 语句<变量名> := 值 注意:简短声明语法 := 只能在函数体内使用,属于局部变量;像用 var 定义的变量一般都在函数体外,是全局变量,属于包级别。
a := 18 //注意:等号左边的变量名必须是没有定义过的变量名,否则将会发生编译错误!

3.常量

常量使用关键字 const 定义,用于存储不会改变的数据,所以它能定义的数据类型比较少,只能是布尔型、数字型(整数型、浮点型和复数)和字符串型。

  • 标准定义格式(显式类型定义) const <变量名> <数据类型> = 值
const name string = "倔强的牛角"
  • 隐式类型定义 const <变量名> = 值
    也是由智能的编译器自动判断厂里的数据类型,但同样不是万能的,想要定义一个具体的数据类型还得用标准定义格式。
const name string = "倔强的牛角"
  • 常量的定义和初始化的方法与变量类似,但是常量不能用 := 语法声明。

4.匿名变量

顾名思义,一个没有名字的变量,它用下划线 _ 表示。匿名变量不占用命名空间,也不会占用内存,可以多次声明而不冲突。可以理解为工具人,今后我会在函数中讲他的实际用法。

二、基本数据类型

类型长度(字节)零值说明
bool1falsetrue flase
byte10uint8
rune40Unicode Code Point, int32
int, uint4或8032 或 64 位
int8, uint810-128 ~ 127, 0 ~ 255,byte是uint8 的别名
int16, uint1620-32768 ~ 32767, 0 ~ 65535
int32, uint3240-21亿~ 21亿, 0 ~ 42亿,rune是int32 的别名
int64, uint64803.4e38
float3240.0
float6480.01.8e308
complex648复数
complex12816复数
uintptr4或8以存储指针的 uint32 或 uint64 整数
string“”UTF-8 字符串

三、类型转换

和C语言不同的是,Go语言中只有强制类型转换,没有隐式类型转换。 转换格式:T(表达式) T表示要转换的数据类型

写在后面

感谢观看✨
如有不足,欢迎指出💖