Go 学习笔记(1)— Ubuntu 系统 Go 环境搭建、VS Code 配置 Go 开发环境、VS Code 远程开发配置

1,952 阅读4分钟

1. 安装说明

Ubuntu 下直接安装 Go 1.11 版本编译器时需要依赖 Go 1.4 版本。所以如果在使用 apt-get install go安装时参考以下链接安装:blog.csdn.net/y5492853/ar…

国外官网 golang.org/dl/

国内官网 golang.google.cn/dl/

2. 安装 Go 1.12

  1. 下载安装包
wget https://dl.google.com/go/go1.12.4.linux-amd64.tar.gz
  1. 解压至 /usr/local目录
sudo tar -C /usr/local -xzf go1.12.4.linux-amd64.tar.gz
  1. 修改环境变量
vi ~/.profile

在文件后面增加

export GOROOT="/usr/local/go"    // Go 的安装目录。也就是刚才解压缩指定的路径
export GOPATH=$HOME/gocode      // 本机配置的 Go 代码目录
export GOBIN=$GOPATH/bin    // Go 代码编译后的可执行文件存放目录
export PATH=$PATH:$GOPATH:$GOBIN:$GOROOT/bin    // 将 Go 安装目录添加进操作系统 PATH 路径
  1. 保存并退出,并执行
source ~/.profile
  1. 重启系统
  2. 查看是否安装成功
wohu@wohu:~$ go version
go version go1.12.4 linux/amd64

3. 第一个 Go 程序

新建一个文本文件 hello,并编辑以下内容,文本文件以 .go 为后缀名

package main    

import "fmt"

func main() {
    /*  注释 */
   fmt.Println("Hello, World!")
}

执行以上代码输出

$ go run hello.go 
Hello, World!

3.1 程序结构说明

  • package main

定义包名, 必须在源文件中非注释的第一行指明这个文件属于哪个包。package main 表示一个可独立执行的程序,每个 Go 应用程序都包含一个名为 main 的包。

  • import "fmt"

导入 fmt 包,fmt 包实现了格式化 IO(输入/输出)的函数。

  • function main

func main() 是程序开始执行的函数。main 函数是每一个可执行程序所必须包含的,一般来说都是在启动后第一个执行的函数(如果有 init() 函数则会先执行该函数)。

  • /_ _/ 注释

单行注释是最常见的注释形式,你可以在任何地方使用以 // 开头的单行注释。多行注释也叫块注释,均已以 /*_ 开头,并以 *_/ 结尾,且不可以嵌套使用,多行注释一般用于包的文档描述或注释成块的代码片段。

  • fmt.Println(...)

可以将字符串输出到控制台,并在最后自动增加换行字符 \n

  • 行分隔符

在 Go 程序中,一行代表一个语句结束。每个语句不需要像 C 家族中的其它语言一样以分号 ; 结尾,因为这些工作都将由 Go 编译器自动完成。 如果你打算将多个语句写在同一行,它们则必须使用;人为区分,但在实际开发中我们并不鼓励这种做法。

  • 标识符

标识符用来命名变量、类型等程序实体。一个标识符实际上就是一个或是多个字母(A-Z和a-z)数字(0-9)、下划线_组成的序列,但是第一个字符必须是字母或下划线而不能是数字。

当标识符(包括常量、变量、类型、函数名、结构字段等等)以一个大写字母开头,如:Group1,那么使用这种形式的标识符的对象就可以被外部包的代码所使用(客户端程序需要先导入这个包),这被称为导出(像面向对象语言中的 public)。

标识符如果以小写字母开头,则对包外是不可见的,但是他们在整个包的内部是可见并且可用的(像面向对象语言中的 protected )。

  • 空格

Go 语言中变量的声明必须使用空格隔开,如: var age int

3.2 Go 源代码特点

  • 源程序以 .go 为后缀
  • 源程序默认为 UTF-8 编码
  • 标识符区分大小写
  • 语句结尾的分号可以省略
  • 函数以 func 开头,函数体开头的 { 必须在函数头所在行的尾部,不能单独起一行
  • 字符串字面量使用 " "双引号括起来;字符字面量 rune 使用 ' ' 单引号括起来
  • 调用包里面的方法使用 . 点翻个访问符,这一点和 Python 一样
  • main 函数所在的包名必须为 main
  • 强类型静态编译型语言

4. VS Code 配置 Go 语言开发环境

在使用 VS Code 配置 Go 开发环境安装 Go 的相关插件时,会有类似如下的错误:

Error: Command failed: /usr/local/go/bin/go get -v github.com/ramya-rao-a/go-outline

由于种种原因,我们无法使用 VS Code 一键安装对应的插件,所以需要手动的下载插件源码包进行安装。

4.1 安装插件脚本合集

直接用下面的脚本进行安装,简单快捷。

#!/bin/bash
cd $GOPATH/src;
mkdir github.com;
cd $GOPATH/src/github.com;
mkdir acroca cweill derekparker go-delve josharian karrick mdempsky pkg ramya-rao-a rogpeppe sqs uudashr ;
cd $GOPATH/src/github.com/acroca;
git clone https://github.com/acroca/go-symbols.git;
cd $GOPATH/src/github.com/cweill;
git clone https://github.com/cweill/gotests.git;
cd $GOPATH/src/github.com/derekparker;
git clone https://github.com/derekparker/delve.git;
cd $GOPATH/src/github.com/go-delve;
git clone https://github.com/go-delve/delve.git;
cd $GOPATH/src/github.com/josharian;
git clone https://github.com/josharian/impl.git;
cd $GOPATH/src/github.com/karrick;
git clone https://github.com/karrick/godirwalk.git;
cd $GOPATH/src/github.com/mdempsky;
git clone https://github.com/mdempsky/gocode.git;
cd $GOPATH/src/github.com/pkg;
git clone https://github.com/pkg/errors.git;
cd $GOPATH/src/github.com/ramya-rao-a;
git clone https://github.com/ramya-rao-a/go-outline.git;
cd $GOPATH/src/github.com/rogpeppe;
git clone https://github.com/rogpeppe/godef.git;
cd $GOPATH/src/github.com/sqs;
git clone https://github.com/sqs/goreturns.git;
cd $GOPATH/src/github.com/uudashr;
git clone https://github.com/uudashr/gopkgs.git;

cd $GOPATH/src;
mkdir -p golang.org/x;
cd golang.org/x;
git clone https://github.com/golang/tools.git;
git clone https://github.com/golang/lint.git;
git clone https://github.com/golang/sys.git;	
git clone https://github.com/golang/net.git;	
git clone https://github.com/golang/mod.git;
git clone https://github.com/golang/xerrors.git;
git clone https://github.com/golang/text.git;
git clone https://github.com/golang/crypto.git;


cd $GOPATH/src;
go install github.com/mdempsky/gocode;
go install github.com/uudashr/gopkgs/cmd/gopkgs;
go install github.com/ramya-rao-a/go-outline;
go install github.com/acroca/go-symbols;
go install github.com/rogpeppe/godef;
go install github.com/sqs/goreturns;
go install github.com/derekparker/delve/cmd/dlv;
go install github.com/cweill/gotests;
go install github.com/josharian/impl;
go install golang.org/x/tools/cmd/guru;
go install golang.org/x/tools/cmd/gorename;
go install golang.org/x/lint/golint;
go install golang.org/x/tools/gopls;

5. VS Code 远程开发配置

如果要使用 VS Code 进行远程连接服务器进行开发时,请参考以下链接进行相应的配置:

Win10环境下配置VScode远程开发ssh-remote(免密登录)
VSCode 配置阿里云CentOS 7.6 远程开发
VSCode安装GO语言依赖工具
Windows64 Visual Studio Code 安装go插件失败分析及解决方案
windows下 go vscode编译运行方法
vsCode保存时代码自动格式化