goenv go 环境配置

Golang环境配置

1. goenv工具

goenv 是一个用于管理 Go 语言版本的工具,类似于 Python 的 pyenv 或 Ruby 的 rbenv。不过需要注意的是,goenv 并不是一个官方维护的工具,而是一个社区项目。Go 语言本身已经提供了很好的版本管理工具(通过 GOROOTGOPATH 变量,以及 Go Modules),但在某些场景下,使用 goenv 可以更方便地切换和管理多个 Go 版本。

1.1 安装

git clone https://github.com/syndbg/goenv.git ~/.goenv
cd ~/.goenv && src/configure

1.2 配置

export PATH="$HOME/.goenv/bin:$PATH"
# 配置GOROOT可以决定goenv下载go版本的路径
export GOROOT = "$HOME/go_sdk" 
source ~/.bashrc  # 或者 source ~/.zshrc

1.3 常用指令

# 安装指定版本
goenv install <version> <path-to-go-installation># 卸载指定版本
goenv uninstall <version># 列出已经安装的所有版本
goenv versions# 列出goenv的版本
goenv version# 设置全局go版本
goenv global <version># 设置项目本地go版本
goenv local <version>

2. go常用命令

  1. go build

    • 功能:编译 Go 程序。
    • 用法:在包的编译过程中,若有必要,会同时编译与之相关联的包。如果是普通包,执行 go build 命令后不会产生任何文件;如果是 main 包,执行 go build 命令后会在当前目录下生成一个可执行文件。
    • 示例:go buildgo build -o myapp.exe(指定输出文件名)。
  2. go clean

    • 功能:移除当前源码包里面编译生成的文件。
    • 用法:会删除旧的 object 目录、test 目录、gotest 文件、test 记录等编译生成的文件。
    • 示例:go clean
  3. go fmt

    • 功能:格式化 Go 代码文件。
    • 用法:通常开发工具会带有保存时自动格式化功能,该功能底层调用了 go fmt 命令。也可以使用 gofmt 命令并加上 -w 参数来格式化整个项目。
    • 示例:gofmt -w src
  4. go get

    • 功能:动态获取远程代码包。
    • 用法:支持 BitBucket、GitHub、Google Code 和 Launchpad 等平台。该命令在内部实际上分成了两步操作:第一步是下载源码包,第二步是执行 go install
    • 示例:go get github.com/user/repo
  5. go install

    • 功能:编译并安装包和依赖。
    • 用法:生成结果文件(可执行文件或者 .a 包),并将编译好的结果移到 GOPATH/pkgGOPATH/bin
    • 示例:go install
  6. go test

    • 功能:自动读取源码目录下面名为 *_test.go 的文件,生成并运行测试用的可执行文件。
    • 用法:默认不需要任何参数,会自动测试源码包下面所有测试文件。也可以带上参数,详情参考 go help testflag
    • 示例:go test
  7. go doc

    • 功能:查看 Go 包的文档。
    • 用法:通过命令行查看相应包的文档,例如 go doc builtin 查看内置包的文档,go doc net/http 查看 net/http 包的文档。
    • 示例:go doc fmt Printf(查看某个包里面的函数)。
  8. go fix

    • 功能:修复以前老版本的代码到新版本。
    • 用法:例如将 go1 之前老版本的代码转化到 go1。
    • 示例:go fix ./...(修复当前目录及其子目录中的所有 Go 文件)。
  9. go version

    • 功能:查看 Go 当前的版本。
    • 用法:直接运行 go version 即可。
    • 示例:go version
  10. go list

    • 功能:列出当前全部安装的 package。
    • 用法:直接运行 go list 即可。
    • 示例:go list
  11. go run

    • 功能:编译并运行 Go 程序。
    • 用法:直接运行 go run,后面跟上要运行的 Go 文件名。
    • 示例:go run main.go
  12. go env

    • 功能:打印 Go 的环境信息。
    • 用法:直接运行 go env 即可查看 Go 的环境变量等信息。
    • 示例:go env
  13. go generate

    • 功能:从处理源代码生成 Go 文件。
    • 用法:通常用于在编译前自动生成一些代码文件。
    • 示例:在源代码文件中添加 //go:generate 指令,然后运行 go generate
  14. go tool

    • 功能:运行 Go 提供的工具。
    • 用法:Go 提供了一系列工具,如 vetfix 等,可以通过 go tool 命令运行。
    • 示例:go tool vet ./...(对当前目录及其子目录中的所有 Go 文件进行 vet 检查)。
  15. go mod

    (Go 1.11+ 版本)

    • 功能:Go 语言的模块支持,用于管理项目依赖。
    • 用法:提供了 inittidyverifygraph 等子命令,用于初始化模块、整理依赖、验证依赖等。
    • 示例:go mod init example.com/mymodule(初始化模块)。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/64011.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Electron electron-builder.yml 配置 (自定义包名,用户自定义安装目录...)

electron-builder.yml 配置 # 唯一的应用程序标识符&#xff0c;用于操作系统级别的识别 appId: com.electron.app# 应用程序的名称&#xff0c;显示在用户界面上 productName: 我的应用# 定义构建资源目录&#xff0c;放置图标、证书等资源文件 directories:buildResources: …

springboot425滑雪场管理系统(论文+源码)_kaic

摘要 近年来&#xff0c;信息化管理行业的不断兴起&#xff0c;使得人们的日常生活越来越离不开计算机和互联网技术。首先&#xff0c;根据收集到的用户需求分析&#xff0c;对设计系统有一个初步的认识与了解&#xff0c;确定滑雪场管理系统的总体功能模块。然后&#xff0c;详…

好玩的汇编编译器NASM:一款基于x86架构的汇编与反汇编软件

好玩的汇编编译器NASM This is the project webpage for the Netwide Assembler (NASM), an asssembler for the x86 CPU architecture portable to nearly every modern platform, and with code generation for many platforms old and new. Netwide Assembler&#xff08;…

前端面试准备问题2

1.防抖和节流分别是什么&#xff0c;应用场景 防抖&#xff1a;在事件被触发后&#xff0c;只有在指定的延迟时间内没有再次触发&#xff0c;才执行事件处理函数。 在我的理解中&#xff0c;简单的说就是在一个指定的时间内&#xff0c;仅触发一次&#xff0c;如果有多次重复触…

Java 的基本数据类型与包装类的区别

Java 提供了 8 种基本数据类型&#xff1a;byte、short、int、long、float、double、char 和 boolean。它们是直接存储值的&#xff0c;不是对象。 而包装类&#xff08;如 Integer、Double 等&#xff09;是将基本数据类型封装为对象&#xff0c;提供了更多方法支持&#xff…

RabbitMQ 基本使用方法详解

RabbitMQ 基本使用方法 在你的代码中&#xff0c;涉及到了 RabbitMQ 的基本使用&#xff0c;包括队列定义、交换机的配置、消息的发送与接收等内容。下面我将详细总结 RabbitMQ 的基本使用方法&#xff0c;重点解释如何在 Spring Boot 项目中与 RabbitMQ 集成。 1. 引入依赖 …

【AI知识】有监督学习分类任务之支持向量机

1.支持向量机概念 支持向量机&#xff08;Support Vector Machine, SVM&#xff09; 是一种有监督学习算法&#xff0c;主要用于分类任务&#xff08;也可用于回归任务&#xff0c;即支持向量回归&#xff0c;SVR&#xff09;。SVM的核心思想是找到一个最优的超平面&#xff0…

杭州乘云联合信通院发布《云计算智能化可观测性能力成熟度模型》

原文地址&#xff1a;杭州乘云联合中国信通院等单位正式发布《云计算智能化可观测性能力成熟度模型》标准 2024年12月3日&#xff0c;由全球数字经济大会组委会主办、中国信通院承办的 2024全球数字经济大会 云AI计算创新发展大会&#xff08;2024 Cloud AI Compute Ignite&…

【经典】制造供应链四类策略(MTS、MTO、ATO、ETO)细说

关注作者 制造供应链的牛鞭问题与复杂问题主要是从两个方面解决&#xff0c;一是同步化供应链消减从需求到供应的放大效应&#xff0c;二是供应链细分&#xff0c;针对不同的客户、不同的需求供应的匹配策略来应对复杂性&#xff0c;更好的满足客户并以最低的总成本来实现。 对…

实时日志与发展:Elasticsearch 推出全新专用的 logsdb 索引模式

作者&#xff1a;来自 Elastic Mark Settle, George Kobar 及 Amena Siddiqi Elastic 最新发布的 logsdb 索引模式是专为日志管理优化的功能&#xff0c;旨在提升日志数据的存储效率、查询性能以及整体可用性。这个模式专注于满足现代日志处理需求&#xff0c;提供更高效的日志…

React Image Crop——在React应用中轻松实现图片裁剪功能

React Image Crop是一个用于在React应用程序中裁剪和调整图像的库。它提供了一个简单而强大的界面&#xff0c;允许用户选择和调整裁剪区域&#xff0c;并生成裁剪后的图像。 什么是React Image Crop&#xff1f; React Image Crop是一个开源的React组件&#xff0c;用于在浏览…

Vue.js 中,前端如何处理从后端返回的 Excel 文件流

目的:页面中点击按钮实现下载excel文件 步骤: 向后端发送请求: 使用 axios(或其他 HTTP 客户端)向后端发送请求以获取文件。通常,文件会以 Blob 形式返回。 处理响应数据: 将响应数据(Blob 对象)处理为下载链接,并模拟点击以触发下载。 具体步骤: 1. 安装 axios(…

【HarmonyOS】鸿蒙应用实现手机摇一摇功能

【HarmonyOS】鸿蒙应用实现手机摇一摇功能 一、前言 手机摇一摇功能&#xff0c;是通过获取手机设备&#xff0c;加速度传感器接口&#xff0c;获取其中的数值&#xff0c;进行逻辑判断实现的功能。 在鸿蒙中手机设备传感器ohos.sensor (传感器)的系统API监听有以下&#xf…

微积分复习笔记 Calculus Volume 2 - 3.7 Improper Integrals

3.7 Improper Integrals - Calculus Volume 2 | OpenStax

box 提取

box 提取 import json import os import shutilimport cv2 import numpy as np import pypinyinclass Aaa():passdef pinyin(word):s for i in pypinyin.pinyin(word, stylepypinyin.NORMAL):s .join(i)return s if __name__ __main__:selfAaa()base_dirrE:\data\dao\20241…

ViewModel

ViewMode是MVVM架构模式中VM层对应的类&#xff0c;它的作用是存储界面数据&#xff0c;并和界面发生数据交互。ViewModel能感知生命周期&#xff0c;并且在界面由于配置问题发生重建时候&#xff0c;可以保持当前的数据不变。生命周期如下&#xff1a; ViewMode由ViewModePr…

ESP32-S3模组上跑通ES8388(29)

接前一篇文章:ESP32-S3模组上跑通ES8388(28) 二、利用ESP-ADF操作ES8388 2. 详细解析 上一回解析到了es8388_init函数中的第11段也是最后一段代码,没有解析完,本回继续解析。为了便于理解和回顾,再次贴出该片段,在components\audio_hal\driver\es8388\es8388.c中,如下…

C#—索引器

C#—索引器 索引器&#xff08;Indexer&#xff09;是类中的一个特殊成员&#xff0c;它能够让对象以类似数组的形式来操作&#xff0c;使程序看起来更为直观&#xff0c;更容易编写。索引器与属性类似&#xff0c;在定义索引器时同样会用到 get 和 set 访问器&#xff0c;不同…

智慧城市道路分割数据集labelme格式2648张1类别

数据集格式&#xff1a;labelme格式(不包含mask文件&#xff0c;仅仅包含jpg图片和对应的json文件) 图片数量(jpg文件个数)&#xff1a;2648 标注数量(json文件个数)&#xff1a;2648 标注类别数&#xff1a;1 标注类别名称:["road"] 每个类别标注的框数&#x…

YOLOv5+pyqt5+摄像头在特定条件下进行目标检测并采集原始数据

项目介绍 项目地址 GitHub - biabu0/Yolov5_D435i: 通过YOLOV5与pyqt5实现一个使用D435i深度摄像头采集特定需求与场景下的深度数据的小程序 通过YOLOV5对指定的区域进行检测&#xff0c;当检测到目标进入特定区域时&#xff0c;开始保存数据&#xff0c;摄像头采用D435i深度…