700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > Go 学习笔记(1)— Ubuntu 系统 Go 环境搭建 VS Code 配置 Go 开发环境 VS Code 远程开发配置

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

时间:2021-09-20 23:51:59

相关推荐

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

1. 安装说明

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

国外官网 /dl/

国内官网 /dl/

2. 安装 Go 1.12

下载安装包

wget /go/go1.12.4.linux-amd64.tar.gz

解压至 /usr/local目录

sudo tar -C /usr/local -xzf go1.12.4.linux-amd64.tar.gz

修改环境变量

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 路径

保存并退出,并执行

source ~/.profile

重启系统查看是否安装成功

wohu@wohu:~$ go versiongo version go1.12.4 linux/amd64

3. 第一个 Go 程序

一个常见的Go工程的基本结构声明流程如下:

包引用声明。标准库或第三方开源库引用。常量声明。变量声明。结构体及其所属方法声明。默认初始化方法声明。主函数声明。普通函数声明。

代码模板示例:

// 包引用package main// 库引用import "fmt"// 常量声明const s1 = "wohu"// 变量声明var s2 string = "wohu"// 结构体及其所属方法声明type T struct {}func (t T) Func1() {}// 初始化方法声明func init() {}// 主函数声明func main() {fmt.Println(s2)}// 普通函数声明func Func2() {}

新建一个文本文件 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 /ramya-rao-a/go-outline

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

4.1 创建 目录

创建 目录,并进入该目录。

wohu@wohu:~$ mkdir -p $GOPATH/src//x/wohu@wohu:~$ cd $GOPATH/src//x/wohu@wohu:~/gocode/src//x$

4.2 下载 源码

下载 工具源码

wohu@wohu:~/gocode/src//x$ git clone /golang/tools.git;wohu@wohu:~/gocode/src//x$ git clone /golang/lint.git;wohu@wohu:~/gocode/src//x$ git clone /golang/sys.git; wohu@wohu:~/gocode/src//x$ git clone /golang/net.git;wohu@wohu:~/gocode/src//x$ git clone /golang/text.git; wohu@wohu:~/gocode/src//x$ git clone /golang/crypto.git;wohu@wohu:~/gocode/src//x$ git clone /golang/mod.git;wohu@wohu:~/gocode/src//x$ git clone /golang/xerrors.git

4.3 创建 目录

wohu@wohu:/$ cd $GOPATH/srcwohu@wohu:~/gocode/src$ wohu@wohu:~/gocode/src$ mkdir wohu@wohu:~/gocode/src$ wohu@wohu:~/gocode/src$ cd /wohu@wohu:~/gocode/src/$

4.4 下载 源码

创建一个 download.sh 的脚本, 然后将以下内容拷贝进去。

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

执行该脚本。

wohu@wohu:~/gocode/src/$ sh download.sh

4.5 创建安装脚本并执行

创建安装脚本 install.sh,并拷贝以下内容。

#!/bin/bashcd $GOPATH/srcgo install /mdempsky/gocodego install /uudashr/gopkgs/cmd/gopkgsgo install /ramya-rao-a/go-outlinego install /acroca/go-symbolsgo install /rogpeppe/godefgo install /sqs/goreturnsgo install /derekparker/delve/cmd/dlvgo install /cweill/gotestsgo install /josharian/implgo install /x/tools/cmd/gurugo install /x/tools/cmd/gorenamego install /x/lint/golint

4.6 安装插件脚本合集

也可以忽略步骤 1-5,直接用下面的脚本进行安装,简单快捷。

#!/bin/bashcd $GOPATH/src;mkdir ;cd $GOPATH/src/;mkdir acroca cweill derekparker go-delve josharian karrick mdempsky pkg ramya-rao-a rogpeppe sqs uudashr ;cd $GOPATH/src//acroca;git clone /acroca/go-symbols.git;cd $GOPATH/src//cweill;git clone /cweill/gotests.git;cd $GOPATH/src//derekparker;git clone /derekparker/delve.git;cd $GOPATH/src//go-delve;git clone /go-delve/delve.git;cd $GOPATH/src//josharian;git clone /josharian/impl.git;cd $GOPATH/src//karrick;git clone /karrick/godirwalk.git;cd $GOPATH/src//mdempsky;git clone /mdempsky/gocode.git;cd $GOPATH/src//pkg;git clone /pkg/errors.git;cd $GOPATH/src//ramya-rao-a;git clone /ramya-rao-a/go-outline.git;cd $GOPATH/src//rogpeppe;git clone /rogpeppe/godef.git;cd $GOPATH/src//sqs;git clone /sqs/goreturns.git;cd $GOPATH/src//uudashr;git clone /uudashr/gopkgs.git;cd $GOPATH/src;mkdir -p /x;cd /x;git clone /golang/tools.git;git clone /golang/lint.git;git clone /golang/sys.git;git clone /golang/net.git;git clone /golang/mod.git;git clone /golang/xerrors.git;git clone /golang/text.git;git clone /golang/crypto.git;cd $GOPATH/src;go install /mdempsky/gocode;go install /uudashr/gopkgs/cmd/gopkgs;go install /ramya-rao-a/go-outline;go install /acroca/go-symbols;go install /rogpeppe/godef;go install /sqs/goreturns;go install /derekparker/delve/cmd/dlv;go install /cweill/gotests;go install /josharian/impl;go install /x/tools/cmd/guru;go install /x/tools/cmd/gorename;go install /x/lint/golint;go install /x/tools/gopls;

总结:

gocode用于代码只能提示delve用于调试源码gopkgs用于对当前文件实现智能的包导入golint用于在保存文件时检查语法godef用于跳转到定义包gopls是官方的语言服务器Go Language Server,也可以实现Go语言的代码智能提示和跳转到定义包等功能

5. VS Code 远程开发配置

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

Win10环境下配置VScode远程开发ssh-remote(免密登录)

VSCode 配置阿里云CentOS 7.6 远程开发

VSCode安装GO语言依赖工具

Windows64 Visual Studio Code 安装go插件失败分析及解决方案

windows下 go vscode编译运行方法

vsCode保存时代码自动格式化

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。