GO语言特点:
- 高性能、高并发 (不需要寻找第三方库来进行开发应用,只需使用标准库)
- 语法简单,学习曲线平缓 (类似于c语言,并对其进行简化)
- 丰富的标准库 (稳定性,兼容性有保障 | 迭代快)
- 完善的工具链 (编译,代码格式化,代码补充提示等)
- 静态链接 (只需拷贝编译后的唯一一个可执行文件即可运行 | 体积小)
- 快速编译 (远远快于c++)
- 跨平台 (Mac,Windows,Linux,Android,Ios,路由器等 | 交叉编译)
- 垃圾回收 (无需考虑内存释放)
- 各公司广泛应用 (字节跳动,腾讯,美团,滴滴,谷歌,B站等)
GO环境配置
参考csdn上的环境配置教学
链接: (16条消息) GO语言环境配置_微凉.@_@的博客-CSDN博客
笔者使用的是vscode进行开发
如果觉得配置环境过于麻烦,也可以考虑使用线上编译器
GO基础语法
package main
为程序的入口包,入口文件,每个程序必备
import{ \\\ }
这里用来导入标准库 如"fmt"
为输入输出库 类似c++中的#include<iostream>
func main(){}
这里为主函数,类似于c++中的int main(){}
func main(){ fmt.Println("hello,world"}
即可在屏幕上输出hello,world
变量的声明
go
func main() {
var a int = 1
var b = "abc"
var c = true
d := "1234"
fmt.Println(a, b, c, d) //1 abc true 1234
}
结构体声明
go
type point struct{
x,y int
}
var a int = 1
与c++语法不同,变量的类型如int
是放在后面 也可以不声明变量类型,则会自动适配类型
d := "1234"
也可以像这样,直接使用:=
也可以声明变量
输出时除了fmt.Println(变量名)
外,还可以使用fmt.Printf("%v",变量名)
所有变量均可以使用%v
输出, 结构体具体的内容则可以使用%+v
或者%#v
来输出
go
func main() {
s := point{1, 2}
fmt.Printf("%+v\n", s)
fmt.Printf("%#v\n", s)
}
分别输出{x:1 y:2}
和main.point{x:1, y:2}
if else
go
if 7%2 == 1 {
fmt.Println("yes")
} else {
fmt.Println("no")
}
与c++类似,只是if
后面不需要加括号()
循环(for循环)
Go语言只有一种循环--for循环
go
for j := 1; j < 6; j++ {
fmt.Println(j)
}
与c++类似,还是不加括号()
switch分支结构
go
func main() {
a := 1
switch a {
case 1:
fmt.Println("1")
case 2:
fmt.Println("2")
default:
fmt.Println("out")
}
}
switch
后面跟了变量名的,case
后面判断的就是该变量是否等于这个值
go
func main() {
a := 1
switch {
case a < 0:
fmt.Println("<0")
case a < 1:
fmt.Println(">=0&&<1")
default:
fmt.Println(">=1")
}
}
switch
后面没有跟变量名的,case
就相当于if
语句
注意: 与c++不同点在于,go的switch
中不需要在每个case
里面加break
,go会自动break
掉
数组
go
func main() {
var a [5]int
for i := 0; i < 5; i++ {
a[i] = i
}
fmt.Println(a)
b := [5]int{1, 2, 3, 4, 5}
fmt.Println(b)
}
二维数组也是类似的,与c++差别不大,注意命名时的语法就行,数组实际的使用次数并不多
后面的语法基础知识会放在下一篇笔记来写
总结:
Go语言写起来会明显感觉比c++更加简短(每一个语句后面不需要加分号了),并且对于变量的声明也显得更加方便,无论是什么类型的变量都可以统一用:=
来声明,输出时也很方便,可以直接使用fmt.Println(a)
后面直接加变量名就可以完整输出了,数组的输出也是这样,不用像c++一样要用一个循环才能输出数组的所有元素,使用fmt.Printf("%v",a)
中%v
也时可以输出任意类型的,这些都比c语言中的printf()
更加方便快捷,也更方便入手,入手Go语言的时候就是要格外注意它的命名语法和c++不同,相对来说还是很好学习的