企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
[TOC] ## 注释 ~~~ // 单行注释 /* 多行注释 */ ~~~ ## 变量常识 ### 变量定义 > 语法:`var 变量名 变量类型` ``` // 定义一个int类型变量 var i int // 定义多个bool类型变量,变量名之间使用逗号分隔 var c, python, java bool ``` ### 变量初始化 > 定义变量的时候直接初始化:`var 变量名 变量类型 = 初始值` ``` // 定义变量i, 数据类型为int, 初始值为10 var i int = 10 // 定义多个int变量i和j, 并且i的初始值为1,j的初始值为2 var i, j int = 1, 2 // 不指定变量的类型,编译器通过初始值的类型,自动推导出变量的类型 var i = 10 var c, python, java = true, false, "no!" ``` ### 短变量声明 > 语法:`变量名 := 初始值` > 语法更加简单,官方推荐使用该方式 ``` s := "www.xx.com" ok := false ``` ## 数值类型 ``` # 从8位到64整数 int int8 int16 int32 int64 # 无符号整数类型 uint uint8 uint16 uint32 uint64 uintptr # byte 类型,是uint8的别名,占一个字节。 # 浮点数类型 float32 float64 ``` > 综合例子 ``` var i int32 = 10 var j uint64 = 1000 var d float64 = 25.3 ``` ## 字符串类型 ``` s := "hello world" # 通过len函数获取字符串长度 l := len(s) # 字符串拼接 s2 := s + " world" ``` ## bool类型 > 布尔类型,只有true和false两种值 ``` ok := true ``` ## 零值 > 零值,也就是默认值,如果在go语言中,我们定义一个变量但是没有给变量一个初始值,那么变量的零值如下: > * 数值类型,默认值是0 > * 布尔值类型,默认值是false > * 字符串类型,默认值是 "" > * 结构体、map、切片,默认值是 nil ## 数据类型转换 > go语言是强类型语言,如果一个变量是int类型,不能直接将int32类型的值赋值给int类型,必须要做类型转换。 > 语法:`变量1 = 数据类型(变量2)` ``` var i int = 100 var j int64 // 将i转换成int64类型 j = int64(i) var d float64 // 将i转换成float64类型 d = float64(i) ``` ## 常量 > 常量就是一旦被定义,值就不能被改变。 ``` const Pi = 3.14 const IP = "127.0.0.1" //多重赋值1111 consta,b,c = 1,false,"str" //多重赋值2222 const ( Female = 1 Male = 2 ) ``` ## 综合例子 ~~~ package main // 导入fmt包 import "fmt" // 在函数外面定义全局变量 var i int = 0 // 入口函数main func main() { // 给变量i赋值 i = 100 // 定义string变量 var s string // 给变量s赋值 s = "hello" // 打印变量值 fmt.Println(s) // 短变量声明用法 yes := false str := "www.xxx.com" code := 200 // 赋值 yes = true str = "https://www.wk.com" code = 301 // 打印变量值 fmt.Println(yes) fmt.Println(str) fmt.Println(code) } ~~~