Go语言简介和环境配置

Go语言介绍

1. Go语言的由来

Go语言亦叫Golang语言,是由谷歌Goggle公司推出。

传统的语言比如c++,大家花费太多时间来学习如何使用这门语言,而不是如何更好的表达写作者的思想,同时编译花费的时间实在太长,对于编写-编译-运行这个链条来说周期太长。动态语言如Python,由于没有强类型的约束,很多问题需要在运行时发现,这种低级错误更应该交给编译器来发现。于是Go诞生了。

2. Go语言的特点

Go语言保证了既能到达静态编译语言的安全和性能,又达到了动态语言开发速度和易维护性,有人形容Go语言:Go= C + Python , 说明Go语言既有C静态语言程序的运行速度,又能达到Python动态语言的快速开发。Go语言有以下
特性:

1. 自动垃圾回收

C/C++最头疼的就是指针问题,一不小心就野指针了或者又越界了。在Go语言里再也不用担心,也不用考虑delete或者free,系统自动会回收。

2. 函数可以返回多个值

这个很神奇,大多数语言只能返回一个值,Go语言可以返回多个值。这个功能使得开发者再不用绞尽脑汁的想到底怎么返回值的设计,也不用为了传值专门定义一个结构体。

3. 并发编程

Go语言天然并发,只需要关键字“go”就可以让函数并发执行,使得并发编程变得更为简单,这也是Go语言最大的优势。

4. 没有依赖地狱, 甚至是glibc
5. 编译一次,随处拷贝,部署极为方便

Go 安装

Go 有多种安装方式,比如 Go 源码安装、Go 标准包安装、第三方工具(yum、apt-get 等)安装。
了解一下两个环境变量:
GOROOT:GOROOT 就是 Go 的安装路径
GOPATH:GOPATH 是作为编译后二进制的存放目的地和 import 包时的搜索路径(其实也是你的工作目录)
GOPATH目录结构:

需要把GOPATH中的可执行目录也配置到环境变量中, 否则你自行下载的第三方go工具就无法使用了。

Linux平台安装Go

go_code // (例go_code为GOPATH目录)
-- bin // golang编译可执行文件存放路径,可自动生成。
-- pkg // golang编译的*.a中间文件存放路径,可自动生成。
-- src // go源码路径。按照golang默认约定,go run,go install等命令的当前工作路径(即在此路
径下执行上述命令)。

使用 Linux,可以用如下方式快速安装。

  • 设置环境变量

在 ~/.bashrc 中添加 GOPATH 变量

添加完后,source ~/.bashrc

  • 检查

看到 go version 命令输出 go 版本号 go1.10.2 linux/amd64,说明 go 命令安装成功。

Windows平台安装Go

下载:

下载路径:https://golang.google.cn/dl/go1.18.3.windows-amd64.msi
安装msi文件
将安装路径添加到环境变量 :
如:go安装到 C:\Program Files\Go目录,则添加环境变量GOPATH: C:\Program Files\Go\
并将%GOPATH%\bin添加到PATH

$ wget https://golang.google.cn/dl/go1.18.3.linux-amd64.tar.gz
$ tar -xzvf go1.18.3.linux-amd64.tar.gz
$ mv go /usr/local/

# 安装目录
export GOROOT=/usr/local/go
# 代码目录
export GOPATH=~/code
export PATH=$PATH:$GOPATH:$GOROOT/bin

$ go version
go version go1.18.3 linux/amd

$ brew install go
$ go version
# go version go1.18.3 darwin/amd

检查

打开cmd命令行,输入:go version

IDE安装

Linux平台Vim 配置

Vim 是 Linux 下开发的最基本工具,可以配置一个 Vim IDE。我们可以使用开源的安装工具,这里直接用该工具实现
一键配置,具体配置步骤如下。

下载 Vim 配置工具

2. 进入 lexVim 目录,下载 go ide 需要的二进制文件:

2.启动安装脚本:

启动后,会进入一个交互环境,依次输入: 1 - > yourname -> youremail@qq.com,脚本最后输出
this vim config is success !说明安装成功。很简单,只需 3 个选择即可安装成功,配置 IDE so easy。

Vim IDE 常用功能

在 Go 项目开发中最常用的功能是(!!必会!!):
gd 或者ctrl + ] 跳转到对应的函数定义处 => 如果没有反应请等待一下,可能慢
ctrl + o 跳转到前一个位置
打开帮助,:q退出
打开目录窗口,再按会关闭目录窗口
最近文件列表,:q退出
添加函数注释
其他:
展示tag,再按会关闭tag窗口
在 Vim 的上面打开文件查找窗口,:q退出

$ git clone https://github.com/lexkong/lexVim

$ cd lexVim
$ git clone https://github.com/lexkong/vim-go-ide-bin

$ ./start_vim.sh

ctrl + t 标签退栈
<F9> 生成供函数跳转的 tag

在代码间跳来跳去,将光标放在某个函数调用上,按 ctl + ] 就会跳到函数的定义处,按 ctrl + o 就会跳回来。
退出某模式的窗口,使用末行模式 :q即可
注意:在vim中粘贴文本,需要 :set paste就能正常粘贴好了!
更多 Go vim ide 功能请参考 Vim IDE 功能。

Windows平台GoLand安装

下载地址:https://www.jetbrains.com/go/
可试用 30 天或自行破解

恩蓝小号下载:https://www.jb51.net/article/198515.htm

测试工具安装

Linux平台Curl工具

安装curl

使用方法:

https://www.ruanyifeng.com/blog/2011/09/curl.html
https://www.ruanyifeng.com/blog/2019/09/curl-reference.html

Windows平台 APIPOST安装

下载地址:https://www.apipost.cn/?utm_source=10039&bd_vid=
无特殊需求下一步安装即可

到此这篇关于Go介绍和环境配置的文章就介绍到这了,更多相关go环境配置内容请搜索恩蓝小号以前的文章或继续浏览下面的相关文章希望大家以后多多支持恩蓝小号!

原创文章,作者:LDNXB,如若转载,请注明出处:https://www.wangzhanshi.com/n/5989.html

(0)
LDNXB的头像LDNXB
上一篇 2024年12月26日 13:15:36
下一篇 2024年12月26日 13:15:45

相关推荐

  • go中结构体切片的实现示例

    在 Go 语言中,结构体切片是一种非常常用的数据结构,它结合了结构体和切片的特点,可以方便地存储和操作多个结构体实例。以下是关于 Go 结构体切片的详细介绍: 1. 结构体切片的定…

    Golang 2024年12月17日
  • GO语言中ni,零值与空结构体的使用

    go语言的初学者,特别是java开发者新学习go语言,对于一些和java类似但是又有差异的概念很容易混淆,比如说go中的零值,nil 和 空结构体。本文就来详细探讨一下go中这些特…

    Golang 2024年12月17日
  • Go channel如何批量读取数据

    在 Go 语言中,我们可以利用 channel 作为数据的传输通道,通过定期批量读取 channel 中的数据,并将这些数据批量发送到 Kafka 或者进行网络写入。这样可以提高系…

    Golang 2024年12月17日
  • go解析YAML文件(多文档解析)

    概述 摘要: 在kubernetes二次开发中,常用yaml文件来创建资源,比如Pod,deployment。在使用client-go创建资源之前,需要将yaml文件转换为资源对象…

    Golang 2024年12月17日
  • 一文探索Go语言中的内存对齐

    在 Go 语言中,内存对齐是一个经常被忽略但非常重要的概念。理解内存对齐不仅可以帮助我们写出更高效的代码,还能避免一些潜在的性能陷阱。 在这篇文章中,我们将通过一个简单的例子来探讨…

    Golang 2024年12月17日
  • Go中log包异或组合配置妙用详解

    log 中的这种用法,你一定见过: log.SetFlags(log.Ldate | log.Ltime | log.Llongfile) 没见过的,自我反省下(逃 在 Go 语言…

    Golang 2024年12月17日
  • golang实现ip访问限制及提交次数

    在 Web 应用中,通常会需要对 IP 访问进行限制以及控制提交次数,以防止恶意攻击(例如暴力破解、DoS攻击、API滥用等)。为了实现这一功能,我们可以结合 Golang 的特性…

    Golang 2024年12月17日
  • golang如何实现抓取IP地址的蜘蛛程序详解

    背景 要做IP地址归属地查询,量比较大,所以想先从网上找到大部分的分配数据,写个蜘蛛程序来抓取入库,以后在程序的运行中不断进行维护、更新、完善。 一些关键点 goroutine的使…

    Golang 2024年12月29日
  • 使用Go语言实现找出两个大文件中相同的记录

    在 Go 语言中找出两个大文件中相同的记录,可以采用以下策略: 思路 读文件:按行逐行读取两个文件中的记录,假设每个文件的每一行代表一条记录。 使用哈希集合(Set):因为哈希集合…

    Golang 2024年12月17日
  • 如何使用Go检测用户本地是否安装chrome

    前言 起因,是因为我之前做过用 go 直接开启浏览器服务,然后在昨天遇到了一位大佬的业务,大佬使用 python 做了一个脚本,并打包成 exe 文件,让我帮其测试,但是在我电脑上…

    Golang 2024年12月17日

发表回复

登录后才能评论