Go语言入门指南|豆包MarsCode AI刷题
1.安装Golang,搭建编译环境(本文仅介绍Windows系统搭建过程)
-
访问Go语言官方网站(golang.org/)下载适用于自己操作系…
-
安装完成后,需要将Go的安装路径添加到系统的PATH环境变量中。
-
在Windows系统中,可以在系统属性中找到环境变量设置,并添加Go的安装路径(如C:\Go\bin)到PATH变量中。
-
打开命令行终端,运行
go version命令,查看Go语言的版本信息。如果显示出Go的版本号,说明安装成功。
以及代理、依赖管理等等的配置,可通过
go env查看,在环境变量中修改。
2.选择适合自己的代码编辑器
VScode,Goland等编辑器均可。VScode安装之后则需下载相关GO扩展(功能免费),如下图:
GoLand 是 Jetbrains 家族的 Go 语言 IDE,有 30 天的免费试用期。、
安装成功之后我们就可以开始编写我们第一个GO语言程序啦!!熟悉的Hello world!
package main
import "fmt"
func main() {
fmt.Println("Hello world!")
}
以上两款编辑器均可安装配置MarsCode Ai辅助编码。
3.基础语法和数据类型
1>变量类型
| 1 | 布尔型 布尔型的值只可以是常量 true 或者 false。 |
|---|---|
| 2 | 数字类型 整型 int 和浮点型 float32、float64,Go 语言支持整型和浮点型数字,并且支持复数,其中位的运算采用补码。 |
| 3 | 字符串类型: 字符串就是一串固定长度的字符连接起来的字符序列。Go 的字符串是由单个字节连接起来的。Go 语言的字符串的字节使用 UTF-8 编码标识 Unicode 文本。 |
| 4 | 派生类型: 包括:(a) 指针类型(Pointer)(b) 数组类型 (c) 结构化类型(struct) (d) Channel 类型 (e) 函数类型 (f) 切片类型 (g) 接口类型(interface)(h) Map 类型 |
其中切片类型相较于数组类型使用更加灵活,可以改变其长度不妨理解为”动态数组“,与python中切片相似,大小为左开右闭区间。Channel可用于两个 goroutine 之间通过传递一个指定类型的值来同步运行和通讯。
2>变量声明
常用定义方法
关键字var
var a string
var b, c int = 1, 2
s:="string"//‘:=’为声明语句
常量使用关键字const即可。
在编程时,所声明的的变量在程序中必须使用否则报错。最初学习Go语言时很不理解,因为在c++中并不报错,据说是为了使代码更加简洁,不那么臃肿。导入包也是用哪个导入哪个,不过IDE编译时会帮忙处理,不会报错。
3>结构体和方法
-
结构体:
-
结构体是Go语言中的一种复合数据类型,可以包含多个字段。也可以将一个结构体嵌入另一个结构体实现继承的效果。
type Person struct { Name string Age int } func main() { p := Person{Name: "John", Age: 30} fmt.Println(p.Name, p.Age) }
-
-
方法:
-
方法与函数类似,但方法的第一个参数是接收者(Receiver),表示方法所属的结构体。刚学到这里时和函数混淆的很厉害。在下方列出函数声明,以便我们看出区别。
func (p Person) Greet() { fmt.Println("Hello, my name is", p.Name) } func main() { p := Person{Name: "John", Age: 30} p.Greet() }
3.函数:
与方法不同的是第一个参数是函数传参,第二个参数为函数返回值,如没有返回值则不声明。Go语言中函数也是一种类型。
-
func Factorial(n uint64)(result uint64) {
if (n > 0) {
result = n * Factorial(n-1)
return result
}
return 1
}
4.并发编程
-
协程(Goroutine):
-
协程是Go语言中用于实现轻量级并发的机制。启动协程非常简单,只需在函数调用前加上
go关键字。func sayHello() { fmt.Println("Hello") } func main() { go sayHello() fmt.Println("Main function") }
-
-
通道(Channel):
-
通道是Go语言中用于在协程之间传递数据的机制。通过通道,协程可以安全地进行数据交换。waigrouf
func main() { ch := make(chan int) go func() { ch <- 42 }() val := <-ch fmt.Println(val) }
-
5.更多
可自行查看官方文档studygolang.com/pkgdoc
6.总结
在实际动手编程的过程中,IDE内可能爆红,但是先不要慌,查看报错原因再进行修改调整即可;可能你是刚从Java、python、c++转向go开发学习,不管怎么样加油干!!