Go 搭建开发环境

Go语言简介

Go 语言即 Golang,由 Google 在 2009 年 11 月正式对外公开。解决的点,包含 C++、Java 的产出比低,以及无法适配告诉发展的 GPU 等硬件资源等问题。Go 语言,不仅有静态编译语言的安全和高性能,也有动态语言的开发速度和易维护性。

具体来说,Go语言的动静优势,主要体现在以下几点:

静态编译语言的优势

  • 安全性方面:
    • 强类型系统在编译时就能发现类型错误,避免运行时崩溃
    • 静态分析可以在编译阶段检测出潜在的bug
    • 内存安全机制,有垃圾回收器防止内存泄漏

  • 高性能方面:
    • 编译成机器码直接执行,无需解释器开销
    • 优秀的编译器优化
    • 高效的并发模型(goroutine和channel)

动态语言般的开发体验

  • 开发速度:
    • 语法简洁,学习曲线平缓
    • 快速的编译速度,几乎接近解释型语言的即时反馈
    • 内置的包管理和工具链(go mod, go fmt, go test等)
    • 类型推断减少了冗余的类型声明

  • 易维护性:
    • 强制的代码格式化(gofmt)保证代码风格一致
    • 简洁的语法减少了代码复杂度
    • 优秀的标准库减少第三方依赖
    • 内置的文档和测试工具

总结来说,Go语言在性能和易用性之间寻找平衡点(Go=C+Python),相比C/C++可能性能稍逊,相比Python可能语法稍显啰嗦,但整体上确实实现了"简单、安全、高效"的设计目标。


Go 环境搭建

  1. 首先,下载 go 语言的安装包:
    • Go 官方下载网址:https://go.dev/dl/
  2. 安装软件:
    • 双击下一步进行安装
  3. 验证安装完成:
    go version
    
    结果如图所示
    请添加图片描述

Go 1.11 版本后无需手动配置环境变量,改为使用 go mod 管理项目。详细环境变量可以通过 go env 命令查看。

上述步骤完成,go 基础环境搭建成功。


Go VSCode IDE 配置

  1. VSCode 中安装 Go 语言插件:

请添加图片描述

  1. Hello go!:
    首先创建一个以 .go 结尾的文件,然后依次写入如下代码内容
    package main
    
    import "fmt"
    
    func main() {
    	fmt.Println("Hello Go!")
    }
    

Go 语言注释方法

跟其他开发语言一致,Go 语言的注释方法也分单行注释与多行注释方法:

  • 单行注释: \\
  • 多行注释: \**\

示例:

func main() {
	/* fmt.Println("Hello Go!")
	fmt.Print("Hello Go!")
	*/
	//fmt.Printf("Hello %s!", "Go")
}

*注:Go 语言中的快速注释方法是 CTRL+/


Go 语言 fmt 包

Go 语言中的 fmt 包,主要用于打印数据。fmt 包主要提供三个输出语句:PrintlnPrintPrintf

Print 与 Println 区别

  1. 一次输出多个值时,Println 中间有空格而 Print 没有。
  2. Println 会自动换行,Print 不会。
package main

import "fmt"

func main() {
	// 一次输出多个值时 Println 会在值之间添加空格
	fmt.Println("A", "B", "C")
	fmt.Print("A", "B", "C")

	// Println 会在输出的最后添加换行符,Print 不会
	fmt.Println("Hello")
	fmt.Print("Hello")

	// Println 会自动换行,Print 不会
	fmt.Println("A")
	fmt.Println("B")
	fmt.Println("C")
	fmt.Print("A")
	fmt.Print("B")
	fmt.Print("C")
}

Println 与 Printf 区别

Printf 与 Println 的区别主要体现在了使用变量时,所以我们首先了解下 Go 语言的主要两种变量定义方法。

Go 语言变量定义方法:

  1. 标准定义方式:
    var 变量名 类型 = 表达式

  2. 类型推导方式定义:
    变量名 := 表达式

变量定义示例:

package main

import "fmt"

func main() {
	var a int = 10
	b := 20
	fmt.Printf("%d\n", a)
	fmt.Printf("%d\n", b)
}

*注意:Go语言中变量定义后必须要使用,否则将报错。

所以 PrintfPrintln 的主要区别在于输出时 Printf 会相对更加灵活,可以在输出语句中添加更多定制化内容。

更多推荐