Go语言入门指南|豆包MarsCode AI刷题

281 阅读4分钟

Go语言入门指南|豆包MarsCode AI刷题

1.安装Golang,搭建编译环境(本文仅介绍Windows系统搭建过程)
  • 访问Go语言官方网站(golang.org/)下载适用于自己操作系…

  • 安装完成后,需要将Go的安装路径添加到系统的PATH环境变量中。

  • 在Windows系统中,可以在系统属性中找到环境变量设置,并添加Go的安装路径(如C:\Go\bin)到PATH变量中。

  • 打开命令行终端,运行go version命令,查看Go语言的版本信息。如果显示出Go的版本号,说明安装成功。

image.png ​ 以及代理、依赖管理等等的配置,可通过go env查看,在环境变量中修改。 image.png

2.选择适合自己的代码编辑器

​ VScode,Goland等编辑器均可。VScode安装之后则需下载相关GO扩展(功能免费),如下图:

image.png ​ GoLand 是 Jetbrains 家族的 Go 语言 IDE,有 30 天的免费试用期。、

​ 安装成功之后我们就可以开始编写我们第一个GO语言程序啦!!熟悉的Hello world!

package main  
import "fmt"  

func main() {    
    fmt.Println("Hello world!")  
}

​ 以上两款编辑器均可安装配置MarsCode Ai辅助编码。

image.png
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>结构体和方法
  1. 结构体

    • 结构体是Go语言中的一种复合数据类型,可以包含多个字段。也可以将一个结构体嵌入另一个结构体实现继承的效果。

      type Person struct {  
          Name string  
          Age  int  
      }  
       
      func main() {  
          p := Person{Name: "John", Age: 30}  
          fmt.Println(p.Name, p.Age)  
      }
      
  2. 方法

    • 方法与函数类似,但方法的第一个参数是接收者(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.并发编程
  1. 协程(Goroutine)

    • 协程是Go语言中用于实现轻量级并发的机制。启动协程非常简单,只需在函数调用前加上go关键字。

      func sayHello() {  
          fmt.Println("Hello")  
      }  
       
      func main() {  
          go sayHello()  
          fmt.Println("Main function")  
      }
      
  2. 通道(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开发学习,不管怎么样加油干!!