Go语言之十条命令(The Ten Commands of Go Language)

news2025/1/8 11:07:38

Go语言之十条命令

Go语言简介

 Go语言(又称Golang)‌是由Google开发的一种开源编程语言,首次公开发布于2009年。Go语言旨在提供简洁、高效、可靠的软件开发解决方案,特别强调并发编程和系统编程‌。

Go语言的基本特征

  1. 静态强类型‌:Go语言在编译阶段确定每个变量的数据类型,并且在后续的代码中不允许改变这个数据类型‌。

  2. 编译型语言‌:代码在执行前需要经过编译过程,编译器将源代码转换成机器可执行的低级指令‌。
  3. 并发支持‌:Go语言提供了强大的并发编程支持,能够有效地利用多核与联网的计算机‌。
  4. 垃圾回收‌:Go语言具有方便的垃圾收集机制,减少了内存管理的复杂性‌。
  5. 运行时反射‌:Go语言支持运行时反射,使得在运行时动态地调用对象的方法和访问对象的属性成为可能‌。

Go语言的应用场景

Go语言广泛应用于以下领域:

  • 网络编程‌:Go语言提供了强大的网络编程支持,适合开发高性能的网络服务‌。
  • 系统编程‌:由于其底层操作系统的访问能力,Go语言常用于系统编程和分布式系统开发‌。
  • 并发编程‌:Go语言的并发机制使得它非常适合处理高并发场景,如游戏服务器端开发‌。

Go语言的发展历史

Go语言的开发始于2007年,由Google的Robert Griesemer、Rob Pike和Ken Thompson等人设计。2009年,Go语言正式对外发布。自发布以来,Go语言经历了多次版本更新,不断引入新特性,如模块系统、泛型支持等,进一步提升了其性能和开发效率‌。

Go设置的相关命令。

1.设置GoProxy国内镜像。

$ go env -w GO111MODELE=on$ go env -w GOPROXY=https://goproxy.cn,direct

2.查看依赖项。

  • 列出当前模块及其所有直接和间接依赖模块

$ go list -m all

解析:

  • 当你运行此命令时,它会显示所有依赖模块的模块路径、版本号等信息。

  • 该命令可以帮助开发者了解项目中的所有依赖情况。

    输出示例:

example.com/myproject v0.1.0golang.org/x/tools v0.1.5github.com/stretchr/testify v1.7.0

3.查看当前依赖可用版本。

$ go list -m -versions github.com/gin-gonic/gin

4.下载依赖。

$ go get github.com/gin-gonic/gin@1.8.0

5.查看依赖图。

  • 显示模块的依赖图,以文本方式展示当前模块依赖关系

$ go mod grph

解析:

  • 该命令会输出当前模块依赖树的详细信息,包括每个模块和它的依赖模块。

  • 格式为 <module1>@<version1> <module2>@<version2>,表示模块1依赖模块2。

  • 这个命令主要用于了解项目中依赖的复杂性,以及发现潜在的循环依赖或版本冲突。

    输出示例:

example.com/myproject@v0.1.0 golang.org/x/tools@v0.1.5golang.org/x/tools@v0.1.5 golang.org/x/mod@v0.3.0

6.整理依赖。

  • 清理 go.mod 文件,移除未使用的依赖,添加遗漏的依赖。

$ go mod tidy
7.升级某个包。
  • 升级到最新的次要版本或者修订版本。

$ go get -u 
  • 升级到最新的修订版本。

$ go get -u=patch

解析:

  • go get -u 会更新模块到最新的次版本或修订版本,不会跨越主版本。

  • go get -u all 会更新所有模块,而指定模块名如 golang.org/x/tools 则仅更新该模块。

  • 更新后,go.mod 和 go.sum 文件会相应地发生变化。

8.replace使用。
  • 仓库是project-A,但是代码仓库go.mod中设置的是github.com/A。

$ go mod edit -replace github.com/A=github.com/project-A@v1.0.0
9.单元测试命令。
  • 所有在包目录中,以_test.go为后缀的源码文件都会b被go test运行到。

  • 不用担心_test.go源码文件内容过多,因为go build命令不会j将这些测试文件打包到最后的可执行文件中。

$ go test
10.性能单元测试命令。
$ go test -bench=".*"

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

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

相关文章

2025年01月07日Github流行趋势

项目名称&#xff1a;khoj 项目地址url&#xff1a;https://github.com/khoj-ai/khoj项目语言&#xff1a;Python历史star数&#xff1a;20105今日star数&#xff1a;363项目维护者&#xff1a;debanjum, sabaimran, MythicalCow, aam-at, shantanuSakpal项目简介&#xff1a;你…

从零手写线性回归模型:PyTorch 实现深度学习入门教程

系列文章目录 01-PyTorch新手必看&#xff1a;张量是什么&#xff1f;5 分钟教你快速创建张量&#xff01; 02-张量运算真简单&#xff01;PyTorch 数值计算操作完全指南 03-Numpy 还是 PyTorch&#xff1f;张量与 Numpy 的神奇转换技巧 04-揭秘数据处理神器&#xff1a;PyTor…

【python】matplotlib(radar chart)

文章目录 1、功能描述和原理介绍2、代码实现3、效果展示4、完整代码5、多个雷达图绘制在一张图上6、参考 1、功能描述和原理介绍 基于 matplotlib 实现雷达图的绘制 一、雷达图的基本概念 雷达图&#xff08;Radar Chart&#xff09;&#xff0c;也被称为蛛网图或星型图&…

数据库环境安装(day1)

网址&#xff1a;MySQL 下载&#xff08;环境准备&#xff09;&#xff1a; &#xff08;2-5点击此处&#xff0c;然后选择合适的版本&#xff09; 1.linux在线YUM仓库 下载/安装: wget https://repo.mysql.com//mysql84-community-release-el9-1.noarch.rpm rpm -i https://r…

Fabric链码部署测试

参考链接&#xff1a;运行 Fabric 应用程序 — Hyperledger Fabric Docs 主文档 (hyperledger-fabric.readthedocs.io) &#xff08;2&#xff09;fabric2.4.3部署运行自己的链码 - 知乎 (zhihu.com) Fabric2.0测试网络部署链码 - 辉哥哥~ - 博客园 (cnblogs.com) 1.启动测试…

数据结构与算法之二叉树: LeetCode 107. 二叉树的层序遍历 II (Ts版)

二叉树的层序遍历 II https://leetcode.cn/problems/binary-tree-level-order-traversal-ii/description/ 描述 给你二叉树的根节点 root &#xff0c;返回其节点值 自底向上的层序遍历 。 &#xff08;即按从叶子节点所在层到根节点所在的层&#xff0c;逐层从左向右遍历&a…

Python插件化开发实战:开发个图片浏览器

在本篇教程中&#xff0c;我将详细介绍如何使用Python开发一个基于插件架构的图片浏览器。这个项目将展示如何实现插件系统、如何处理图片显示,以及如何使用wxPython构建GUI界面。 “C:\pythoncode\pythonplugin\your_project\main_app.py” 项目概述 我们将开发一个具有以下…

根据python代码自动生成类图的实现方法[附带python源码]

概述 利用python库抽象语法树(AST)和类图描述语言(PlantUML),实现自动将python代码生成类图的目的。 环境 windowsvscodepythonplantuml ✒️网上好像大部分都是用Pyreverse库来实现的&#xff0c;但是我实际测试发现只能在一个文件中才能行&#xff0c;当然应该有解决方法…

下载b站高清视频

需要使用的edge上的一个扩展插件&#xff0c;所以选择使用edge浏览器。 1、在edge浏览器上下载 强力视频下载合并 扩展插件 2、在edge上打开b站&#xff0c;登录自己账号&#xff08;登录后才能下载到高清&#xff01;&#xff01;&#xff09;。打开一个视频&#xff0c;选择自…

flutter 专题二十四 Flutter性能优化在携程酒店的实践

Flutter性能优化在携程酒店的实践 一 、前言 携程酒店业务使用Flutter技术开发的时间快接近两年&#xff0c;这期间有列表页、详情页、相册页等页面使用了Flutter技术栈进行了跨平台整合&#xff0c;大大提高了研发效率。在开发过程中&#xff0c;也遇到了一些性能相关问题和…

UE5 打包要点

------------------------- 1、需要环境 win sdk &#xff0c;大约3G VS&#xff0c;大约10G 不安装就无法打包&#xff0c;就是这么简单。 ----------------------- 2、打包设置 编译类型&#xff0c;开发、调试、发行 项目设置-地图和模式&#xff0c;默认地图 项目…

vulnhub靶场【DC系列】之5

前言 靶机&#xff1a;DC-5&#xff0c;IP地址为192.168.10.4 攻击&#xff1a;kali&#xff0c;IP地址为192.168.10.2 都采用VMWare&#xff0c;网卡为桥接模式 对于文章中涉及到的靶场以及工具&#xff0c;我放置网盘中https://pan.quark.cn/s/2fcf53ade985 主机发现 使用…

双模态视觉特征流用于医学报告生成|文献速递-视觉大模型医疗图像应用

Title 题目 Dual-modality visual feature flow for medical report generation 双模态视觉特征流用于医学报告生成 01 文献速递介绍 医学报告生成是一项新兴的跨模态文本生成任务&#xff08;X. Zeng et al., 2020&#xff1b;Najdenkoska et al., 2022&#xff1b;Li et…

基于Fluent和深度学习算法驱动的流体力学计算与应用

物理模型与深度学习的融合&#xff1a;研究如何将传统的物理模型与深度学习算法相结合&#xff0c;以提高流体力学问题的预测准确性和计算效率。复杂流动模拟&#xff1a;利用深度学习技术对复杂流动现象进行模拟和分析&#xff0c;包括湍流、多相流、非牛顿流体等&#xff0c;…

记PasteSpider部署工具的Windows.IIS版本开发过程之草稿-动态表单(2)

接1的内容&#xff0c;那么有这么一个需求&#xff01; 需求分析 需要修改某一个配置的时候 1.从对应的api中读取消息&#xff0c;消息内容为Json格式的 2.基于当前的Json渲染成表单提供给管理端的客户呈现 3.管理端的用户可以基于这个表单的内容进行修改&#xff0c;然后提交…

pycharm-pyspark 环境安装

1、环境准备&#xff1a;java、scala、pyspark、python-anaconda、pycharm vi ~/.bash_profile export SCALA_HOME/Users/xunyongsun/Documents/scala-2.13.0 export PATH P A T H : PATH: PATH:SCALA_HOME/bin export SPARK_HOME/Users/xunyongsun/Documents/spark-3.5.4-bin…

Clisoft SOS设置Workarea

Clisoft SOS设置Workarea 本人也是刚刚接触这个软件&#xff0c;可能有些方面不够完善&#xff0c;欢迎大佬指点。 这里就不演示创建创建Server和Project&#xff0c;可以参考Clisoft SOS设置Server和Project 创建Workarea 创建好目录并设置好权限 # 创建组 [bhlumaster ~]$…

数据结构:LinkedList与链表—无头双向链表(二)

目录 一、什么是LinkedList&#xff1f; 二、LinkedList的模拟实现 1、display()方法 2、addFirst(int data)方法 3、addLast(int data)方法 4、addIndex(int index,int data)方法 5、contains(int key)方法 6、remove(int key)方法 7、removeAllKey(int key)方法 8、…

基于SpringBoot实现的保障性住房管理系统

&#x1f942;(❁◡❁)您的点赞&#x1f44d;➕评论&#x1f4dd;➕收藏⭐是作者创作的最大动力&#x1f91e; &#x1f496;&#x1f4d5;&#x1f389;&#x1f525; 支持我&#xff1a;点赞&#x1f44d;收藏⭐️留言&#x1f4dd;欢迎留言讨论 &#x1f525;&#x1f525;&…

【Linux】硬链接和软连接(符号连接)

目录 硬链接 软连接 硬链接和软连接的区别 硬链接 ln根据linux系统分配给文件inode(ls -li)进行建立&#xff0c;没办法跨越文件系统 格式&#xff1a;ln 被链接的文件(源文件) 生成的链接文件(目标文件) 1) 硬链接的属性 - 相当于生成一个副本 起别名 2) 修改内容都变化…