记录开发中实际涉及的Go开发语言知识
背景
在ubunut镜像的服务器部署应用
安装go
- 登录go官网获取最新go的下载链接。
- 执行
wget https://golang.org/dl/go1.16.4.linux-amd64.tar.gz
下载安装包。 - 执行
tar -C /usr/local -xzf https://golang.org/dl/go1.16.4.linux-amd64.tar.gz
将go安装到/usr/local目录下。 -
编辑
~/.bashrc
文件,在最后添加如下内容:export GOROOT=/usr/local/go export GOPATH=/root/work/go export GOBIN=/root/work/go/bin export PATH=$PATH:$GOPATH/bin:/usr/local/go/bin
- 执行
source ~/.bashrc
使配置生效。
安装应用
- 进入工程目录,执行
go build; go install
, 假设在workspace目录下生成的bin文件为hello_world。 -
执行
vim /etc/systemd/system/hello_world.service
, 添加如下内容:[Unit] Description=message aggrate service
[Service] Restart=always User=root Group=root ExecStart=/root/work/go/bin/hello_world
[Install] WantedBy=multi-user.target
- 执行
systemctl start hello_world.service
启动应用
语言的特性
Go从本质上(程序和结构方面)来实现并发编程。
Go没有类和继承的概念,它通过接口(interface)的概念来实现多态性。
Go语言有一个轻量级的类型
系统,在类型之间也没有层级之说。而传统的面向对象语言中,它们总是通过复杂的模式来构建庞大的类型层级
,使得面向对象编程技术显得非常臃肿。
Go语言使用静态类型,所以它是一门类型安全的语言,作为强类型语言,隐式的类型转换时不被允许的。
Go缺乏如下一些在大多数面向对象语言中使用的特性:
- 不支持动态链接库
- 不支持泛型
- 不支持静态变量
开发环境配置
环境变量
GOPATH环境变量指定了你workspace的位置,在Unix系统下一般默认为$HOME/go
。
GOROOT是按照Golang的目录,使用命令go env
可以查看当前go中的环境变量值。
如果想要临时修改GOPATH值,可以执行如下命令:
$ export GOPATH=$HOME/workspace
$ export PATH=$PATH:$(go env GOPATH)/bin
如果想要永久修改,可以在家目录的.bashrc文件中配置:
export GOPATH=$HOME/workspace
export GOBIN=$HOME/workspace/bin
export PATH=$PATH:%GOPATH/bin
基本语法
基本数据类型
类型
类型定义了某个变量值的集合与可对其进行操作的集合。
指针
不像java和.NET,Go提供了控制数据结构的指针的能力,但是和c/c++中指针不同的是,Go中的指针不能进行运算。
结构(struct)与方法(method)
Interfaces(接口)
开发工具
vim
安装vim-go插件
使用vim插件管理工具Vundle安装vim-go很方便。
-
1.在
~/.vimrc
配置文件中添加Plugin 'fatih/vim-go'
。 -
2.进入vim,执行
:PluginInstall
安装vim-go插件。 -
3.执行
:GoInstallBinaries
安装vim-go的依赖库。 -
4.执行
:help vim-go
查看如何使用vim-go插件
得益于go语言的内建源码管理功能,使用vim-go插件定位函数原型时不像c和c++那样,需要源码文件在同一目录树下。比如,你的GOPATH为~/go
,而你在~/work/demo
目录下vim打开xx.go文件,使用CRTL+]
可以直接打开位于~/go
目录下的函数原型所在go文件。
Goland
Editor basics
游览代码最需要的就是navigate功能,和一般IDE一样,Goland中可以"Ctrl+单击"
进行navigate forward,而back是"Ctrl + Alt + <-"
。