go_basic - ShenYj/ShenYj.github.io GitHub Wiki

Go基础

简介

Go是一种静态类型、垃圾回收、并发简单的编程语言,由Google开发。它的设计目标是让程序员更高效地编写简洁、可靠的代码。

Go语言的发展历程如下:
2009年,Robert Griesemer、Rob Pike和Ken Thompson在Google开发了Go语言。
2012年,Go语言发布了1.0版本。
2015年,Go语言发布了1.4版本,引入了GC(垃圾回收)。
2019年,Go语言发布了1.13版本,引入了模块系统。

Go语言的核心设计原则包括:
简单性:Go语言的语法和特性都是简洁的,让程序员更专注于编写代码。
并发性:Go语言的并发模型是基于goroutine和channel,让程序员更轻松地处理并发问题。
可靠性:Go语言的垃圾回收和内存管理机制让程序员更容易编写可靠的代码。
可扩展性:Go语言的模块系统和工具链让程序员更容易构建大型项目。

Go语言的主要应用场景包括:
Web开发:Go语言的并发性和性能使得它成为一个优秀的Web框架(如golang.org/x/net/context)的选择。
微服务:Go语言的轻量级和高性能使得它成为一个优秀的微服务框架(如golang.org/x/time/ticker)的选择。
数据处理:Go语言的高性能和并发性使得它成为一个优秀的数据处理框架(如golang.org/x/sync/singleflight)的选择。

环境变量

官网下载直接安装好后,通过终端确认

❯ go version
go version go1.24.0 darwin/amd64

需要配置的环境变量

  • GOROOT: go 语言所在的目录, 用于全局执行go相关的命令

    ❯ which go
    /usr/local/go/bin/go
  • GOPATH: 工作目录,工程代码存放的位置,此目录下,一个文件夹就是一个工程

    • GOPATH是一个环境变量,用来表明你写的go项目的存放路径
    • GOPATH路径最好只设置一个,所有的项目代码都放到GOPATH的src目录下

    GOPATH目录约定有三个子目录

    • src: 存放源代码, 比如 .go .c .h .s等
    • pkg: 管以后生成的文件,比如 .a
    • bin: 编译后生成的可执行文件(为了方便,可以八次目录加入到$PATH变量中)
  • GOPROXY: 代码,由于go需要翻墙使用,需要配置代理

设置好后可以通过 go env 查看设置是否生效

MAC 系统下你可以使用 .pkg 结尾的安装包直接双击来完成安装,安装目录在 /usr/local/go/ 下

Hello World

// 导入包的子句在每个源文件的开头。
// main比较特殊,它用来声明可执行文件,而不是一个库。
package main
// Import语句声明了当前文件引用的包。
import "fmt"

func main() {
    // 往标准输出打印一行。
    // 用包名fmt限制打印函数。
    fmt.Print("Hello World!")
}

import

除了上面的单独导入, 还可以多个导入

// Import语句声明了当前文件引用的包。
import (
    "fmt"       // Go语言标准库中的包
    "io/ioutil" // 包含一些输入输出函数
    m "math"    // 数学标准库,在此文件中别名为m
    "net/http"  // 一个web服务器包
    "os"        // 系统底层函数,如文件读写
    "strconv"   // 字符串转换
)

语法速查

语法速查

⚠️ **GitHub.com Fallback** ⚠️