go语言基础1.Go 语言有四大显著特点:高效性:编译与运行效率高。并发性:原生支持并发编程。简洁性:编程风格简洁直接,代码可读性与可维护性高。跨平台性:程序能在 Windows、Linux、Mac OS 等多系统运行。2.go的包:package1.main:主函数3.go的工具链组件: import 1.go mod init+自定义名称 #初始化项目,生成项目文件2.go run + 文件 #编译并执行文件 3.go build #编译,将当前目录中的.go文件编译为可执行文件go build -o demo01_app demo01.go//-o demo01_app 指定可执行文件的名字4.go doc 组件名称 #查看组件的文档5.fmt:输出 #fmt.Println()4.变量(var):变量申明后必须要使用1.声明赋值:var 变量名1,变量名2 数据类型 = a,bvar name,name2 string =a,b(1)声明多个不同类型的变量:var (name stringage intaddress string)2.短变量:不需要申明类型,系统自动判断类型格式: name := "jack" // 字符串类型的变量。3.匿名变量:a, b, _ := 1, 2, 3:表示第三个值不使用4.交换变量num1, num2 := 25, 36nam1, num2 = num2, num15.常量(const):不允许重新赋值1.声明赋值:const name string = "Jack"声明多个常量:const(a int=1b string ="aa")2.iota:声明无类型的"整数"序数(等差数列)const (a = iotabc)6.输出和输入格式化输出:fmt.Printf()1.%v #任意类型2.%s #字符型3.%d #整型4.%.2f #浮点:保留两位小数5.%t #布尔值6.%T #输出类型7.%c #编码转换,输出对应字符获取键盘输入:fmt.Scan(&a,&b),控制台空格间隔,输完参数自动结束,&为固定的绑定变量值的符号fmt.Scanln(&a,&b),控制台空格间隔,输完参数回车结束7.数据类型(1)整型有符号整型(分正负) int8/16/32/64,默认由操作系统决定 [-32768, 32767]无符号整型(不分正负) uint8/16/32/64 [0, 65535](2)浮点float32 32位浮点数float64 64位浮点数(短变量默认类型)(3)布尔类型bool true为真值,false为假值var b1 bool = true(4)字符串类型1)字符串string 字符串,字符串可以用双引号""或反引号``来表示str := "Hello, World!"multilineStr := ` //可以换行This is amultiline string.`(5)字符型:本质存字符的数字编码1)byte,使用单引号包括一个字符,相当于uint8var a byte = 'a' fmt.Println(a) // 97,输出ASCII编码值2)rune,相当于int32var b rune = '中'fmt.Println(b) // 20013(6) \转义字符\n 换行符号\t 横向制表符号(多空格)\b 回退符号\f 换页符号(7)零值:一个类型的空值或者说默认值更为准确。var i int // 默认为0var s8 string // 默认为""var b3 bool // 默认为false8.字符串的多种使用(1)字符串的拼接:+str1 := "Hello, "str2 := "World!"str = str1+str2(2)字符串长度,单位是字节,英文占一个字节,汉字占三个字节:lenstr := "Hello, World!"length := len(str) (3)字符串索引:[],string()str := "Hello世界"firstChar := str[0] secondChar := str[5] #汉字占三个字节,这样只取出一个字节fmt.Println(firstChar, secondChar) // 输出 '72' 和 '228'// 编码转换fmt.Println(string(firstChar), string(secondChar)(4)字符串切片:取一段,可以取出汉字的内容,按照字节进行计数str[start:end]:从start到end(不包括end)。str[:]:获取字符串的完整副本str := "Hello世界"fmt.Println(str2[5:8]) // "世"9.数据类型转换整型和浮点的转换:var a int8 = 6int16/float64(a) 字符串转换:1)fmt.Sprintf("%d", a):其它类型转字符串,只格式化,不输出var a int = 20var stra string //转换的类型stra = fmt.Sprintf("%d", a) //格式化输出转换fmt.Printf("stra type is %T, value is %v \n", stra, stra)2)fmt.Sprintf: //不同类型的数据拼接var str string = "aa"var f1 float32 = 12.2var b1 bool = truea := fmt.Sprintf("商品标题:%s 价格:%f 是否在售:%t\n",str,f1,b1)fmt.Printf(a)3)strconv:实现基本数据类型和字符串之间的转换字符串和整型相互转换strconv.Atoi(str) #字符串转整型strconv.Itoa(int) #整型转字符串字符串和浮点形转换 strconv.ParseFloat(str,64) #字符串转浮点strconv,FormatFloat(num,'f',2,64) #浮点转字符串(要转换的浮点型,输出浮点形,保留2位,64位的)字符串和布尔转换strconv.ParseBool(str) #字符串转布尔strconv.FormatBool(b) #布尔转字符串
1.Go 语言有四大显著特点:
高效性:编译与运行效率高。
并发性:原生支持并发编程。
简洁性:编程风格简洁直接,代码可读性与可维护性高。
跨平台性:程序能在 Windows、Linux、Mac OS 等多系统运行。
2.go的包:package
1.main:主函数
3.go的工具链组件: import
1.go mod init+自定义名称 #初始化项目,生成项目文件
2.go run + 文件 #编译并执行文件
3.go build #编译,将当前目录中的.go文件编译为可执行文件
go build -o demo01_app demo01.go
//-o demo01_app 指定可执行文件的名字
4.go doc 组件名称 #查看组件的文档
5.fmt:输出 #fmt.Println()
4.变量(var):变量申明后必须要使用
1.声明赋值:var 变量名1,变量名2 数据类型 = a,b
var name,name2 string =a,b
(1)声明多个不同类型的变量:
var (
name string
age int
address string
)
2.短变量:不需要申明类型,系统自动判断类型
格式: name := "jack" // 字符串类型的变量。
3.匿名变量:a, b, _ := 1, 2, 3:表示第三个值不使用
4.交换变量
num1, num2 := 25, 36
nam1, num2 = num2, num1
5.常量(const):不允许重新赋值
1.声明赋值:const name string = "Jack"
声明多个常量:
const(
a int=1
b string ="aa"
)
2.iota:声明无类型的"整数"序数(等差数列)
const (
a = iota
b
c
)
6.输出和输入
格式化输出:fmt.Printf()
1.%v #任意类型
2.%s #字符型
3.%d #整型
4.%.2f #浮点:保留两位小数
5.%t #布尔值
6.%T #输出类型
7.%c #编码转换,输出对应字符
获取键盘输入:
fmt.Scan(&a,&b),控制台空格间隔,输完参数自动结束,&为固定的绑定变量值的符号
fmt.Scanln(&a,&b),控制台空格间隔,输完参数回车结束
7.数据类型
(1)整型
有符号整型(分正负) int8/16/32/64,默认由操作系统决定 [-32768, 32767]
无符号整型(不分正负) uint8/16/32/64 [0, 65535]
(2)浮点
float32 32位浮点数
float64 64位浮点数(短变量默认类型)
(3)布尔类型
bool true为真值,false为假值
var b1 bool = true
(4)字符串类型
1)字符串
string 字符串,字符串可以用双引号""或反引号``来表示
str := "Hello, World!"
multilineStr := ` //可以换行
This is a
multiline string.
`
(5)字符型:本质存字符的数字编码
1)byte,使用单引号包括一个字符,相当于uint8
var a byte = 'a'
fmt.Println(a) // 97,输出ASCII编码值
2)rune,相当于int32
var b rune = '中'
fmt.Println(b) // 20013
(6) \转义字符
\n 换行符号
\t 横向制表符号(多空格)
\b 回退符号
\f 换页符号
(7)零值:一个类型的空值或者说默认值更为准确。
var i int // 默认为0
var s8 string // 默认为""
var b3 bool // 默认为false
8.字符串的多种使用
(1)字符串的拼接:+
str1 := "Hello, "
str2 := "World!"
str = str1+str2
(2)字符串长度,单位是字节,英文占一个字节,汉字占三个字节:len
str := "Hello, World!"
length := len(str)
(3)字符串索引:[],string()
str := "Hello世界"
firstChar := str[0]
secondChar := str[5] #汉字占三个字节,这样只取出一个字节
fmt.Println(firstChar, secondChar) // 输出 '72' 和 '228'
// 编码转换
fmt.Println(string(firstChar), string(secondChar)
(4)字符串切片:取一段,可以取出汉字的内容,按照字节进行计数
str[start:end]:从start到end(不包括end)。
str[:]:获取字符串的完整副本
str := "Hello世界"
fmt.Println(str2[5:8]) // "世"
9.数据类型转换
整型和浮点的转换:
var a int8 = 6
int16/float64(a)
字符串转换:
1)fmt.Sprintf("%d", a):其它类型转字符串,只格式化,不输出
var a int = 20
var stra string //转换的类型
stra = fmt.Sprintf("%d", a) //格式化输出转换
fmt.Printf("stra type is %T, value is %v \n", stra, stra)
2)fmt.Sprintf: //不同类型的数据拼接
var str string = "aa"
var f1 float32 = 12.2
var b1 bool = true
a := fmt.Sprintf("商品标题:%s 价格:%f 是否在售:%t\n",str,f1,b1)
fmt.Printf(a)
3)strconv:实现基本数据类型和字符串之间的转换
字符串和整型相互转换
strconv.Atoi(str) #字符串转整型
strconv.Itoa(int) #整型转字符串
字符串和浮点形转换
strconv.ParseFloat(str,64) #字符串转浮点
strconv,FormatFloat(num,'f',2,64) #浮点转字符串(要转换的浮点型,输出浮点形,保留2位,64位的)
字符串和布尔转换
strconv.ParseBool(str) #字符串转布尔
strconv.FormatBool(b) #布尔转字符串