Post

Day01(Golang 入门介绍)

Golang 基础

本章源码

初步认识 Golang

  • Go 跨平台(linux、windows、mac),只要编写完代码之后 交叉编译即可
  • Go 语言单一、简洁、天生高并发、CGO
  • Go 应用广(web 应用、区块链、运维、云计算、大数据)

Go 环境

Linux & MacOs

  1. 下载 Golang 安装包:在 Golang 官方网站上下载适合自己 Linux 发行版和架构的 Golang 安装包
  2. 解压安装包:将下载的安装包解压到系统的某个目录下,如 /usr/local。

    1
    
    sudo tar -C /usr/local -xzf go*.tar.gz
    
  3. 配置环境变量:编辑 ~/.bashrc 或者 ~/.profile 文件,添加以下内容:

    1
    
    export PATH=$PATH:/usr/local/go/bin
    
  4. 使环境变量生效:执行以下命令使环境变量生效

    1
    
    source ~/.bashrc
    

    或者

    1
    
    source ~/.profile
    
  5. 检查安装:打开命令行终端,输入 go version 命令,如果输出 Golang 的版本号,则说明 Golang 安装成功

注意:不同的 Linux 发行版可能有所不同,以上是一个基本的安装步骤,具体步骤可以根据自己的情况进行调整

Windows

  1. 下载 Golang 安装包:在 Golang 官方网站 官方网站上下载适合自己 Windows 版本和架构的 Golang 安装包。
  2. 运行安装程序:运行下载的 Golang 安装包,按照提示进行安装,通常只需要选择安装路径和确认安装即可
  3. 配置环境变量:将 Golang 的 bin 目录添加到系统的 PATH 环境变量中,这样才能在命令行中使用 Golang 的命令

    • 打开”控制面板” -> “系统和安全” -> “系统” -> “高级系统设置” -> “环境变量”
    • 在”系统变量”中找到”Path”变量,点击”编辑”
    • 在编辑系统变量窗口中,点击”新建”,输入 Golang 的 bin 目录,例如 C:\Go\bin
    • 点击”确定”保存修改。
  4. 检查安装:打开命令行终端,输入 go version 命令,如果输出 Golang 的版本号,则说明 Golang 安装成功。

注意:在 Windows 环境下,如果出现权限问题,需要使用管理员权限运行命令行终端

环境变量

注:GOROOT、GOPATH、GOOS、GOHOSTARCH 、GO111MODULE、GOPROXY 重要

Git 工具安装

go get 下载代码需要 依赖 git

Golang 开发工具

推荐开发工具

  • Goland
  • vs code
  • vim

Golang HelloWorld

在某个目录下面创建 main.go

1
2
3
4
5
6
7
package main

import "fmt"

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

编译运行

1
2
3
4
5
6
D:\file\gopath\src\Cc360428\helloWorld>go build -o helloWorld.exe

D:\file\gopath\src\Cc360428\helloWorld>helloWorld.exe
Hello World!

D:\file\gopath\src\Cc360428\helloWorld>

基础语法

分隔符

一行代表一个结束,每一句不需要与其他语言一行 ;来表示结束,Go 语言在编译时 i 自动会完成

注释

1
2
3
4
// 单行注释
/**
多行注释
*/

标识符

标识符用来命名变量、常量、实体

  • 不能以数字开头
  • Go 语言关键字不能使用
  • 运算符不能使用

关键字

  • 25 个关键保留字
    • 包管理-2
      1. import
      2. package
    • 程序实体声明与定义-8
      1. chan
      2. const
      3. func
      4. interface
      5. map
      6. struct
      7. type
      8. var
    • 程序流程控制-16
      1. break
      2. case
      3. continue
      4. default
      5. defer
      6. else
      7. fallthrough
      8. for
      9. go
      10. goto
      11. if
      12. range
      13. return
      14. select
      15. switch
  • 36 个预定义标识符
    1. append
    2. bool
    3. byte
    4. cap
    5. close
    6. copy
    7. recover
    8. false
    9. TRUE
    10. panic
    11. print
    12. println
    13. iota
    14. len
    15. make
    16. new
    17. nil
    18. real
    19. int
    20. int8
    21. int16
    22. int32
    23. int64
    24. string
    25. uint
    26. uint8
    27. uint16
    28. uint32
    29. uint64
    30. uintprt
    31. complex
    32. complex64
    33. complex128
    34. float32
    35. float64
    36. imag

常见

  • 变量的声明必须使用空格隔开
  • 运算符之间加空格,一定时候加空格会跟好看,不要怕会占空间、go 语言编译时候可以去掉空格和换行
  • 未使用的变量会编译不通过
  • 写完代码之后常见使用 go fmt [*.go]格式化代码
  • pubulic And private

    不管变量名或者是方法名,如果首字母大写就是(pubulic) ,首字母小写就是(private)

基础学习路线

  • 数据类型
  • 变量
  • 常量
  • 运算符
  • 条件语句
  • 循环语句
  • 函数
  • 变量作用域
  • 数组
  • 指针
  • 结构体
  • 切片(Slice)
  • range 使用
  • Map(集合)
  • Container
  • 接口
  • 错误处理
  • 并发

基础概括

  1. 语言特性和语法:Golang 是一门静态类型、编译型、并发型、垃圾回收的编程语言。它的语法简洁、清晰,具有自动垃圾回收、内置并发机制等特性,使得开发人员可以更快速、高效地开发应用程序。
  2. 变量和常量:在 Golang 中,变量必须显式声明,可以使用 var 或 := 来声明变量。常量则使用 const 关键字声明。
  3. 基本数据类型:Golang 中的基本数据类型包括整型、浮点型、布尔型、字符串等。其中整型又包括 int、int8、int16、int32、int64 等类型,浮点型则包括 float32 和 float64 两种类型。
  4. 控制流程语句:Golang 中的控制流程语句包括条件语句、循环语句和跳转语句。其中条件语句包括 if 和 switch 语句,循环语句则包括 for 和 range 语句,跳转语句则包括 break、continue 和 goto 语句。
  5. 数组、切片和映射:Golang 中的数组是固定长度的,而切片则是可变长度的,它们都可以用来存储同一种类型的数据。映射则是一种键值对的数据结构,也称为字典或哈希表。
  6. 函数和方法:在 Golang 中,函数是独立的代码块,可以被多次调用。方法则是属于某个类型的函数,它可以通过该类型的实例来调用。
  7. 结构体和接口:Golang 中的结构体是一种自定义类型,由多个字段组成。接口则是一种抽象类型,定义了一组方法,用来描述一种行为。
  8. 并发编程:Golang 内置了 goroutine 和 channel,它们是 Golang 并发编程的核心。goroutine 是一种轻量级的线程,通过关键字 go 来启动。channel 则是一种通信机制,用来在 goroutine 之间传递数据。本教程代码所有都会公开到 gitee.com

为什么不使用 github.com 因为 github 下载会受到网络影响,所以 go 教程代码会使用 gitee 代码管理,在此也谢谢 gitee

gitee 仓库地址

gitee 地址

This post is licensed under CC BY 4.0 by the author.