Golang语言介绍、环境搭建以及编译工具( CDN 加速代理)

news2024/11/26 10:41:54

Go 语言是非常有潜力的语言,是因为它的应用场景是目前互联网非常热门的几个领域,比如 WEB 开发、区块链开发、大型游戏服务端开发、分布式/云计算开发。国内比较知名的B 站就是用 Go 语言开发的,像 Goggle、阿里、京东、百度、腾讯、小米、360 的很多应用也是使用 Go 语言开发的。

Go语言的并发是基于 goroutine 的,goroutine 类似于线程,但并非线程。

可以将 goroutine 理解为一种虚拟线程。Go 语言运行时会参与调度 goroutine,将 goroutine 合理地分配到每个 CPU 中,最大限度地使用CPU性能。开启一个goroutine的消耗非常小(大约2KB的内存),你可以轻松创建数百万个goroutine

goroutine的特点:

    1.`goroutine`具有可增长的分段堆栈。这意味着它们只在需要时才会使用更多内存。
    2.`goroutine`的启动时间比线程快。
    3.`goroutine`原生支持利用channel安全地进行通信。
    4.`goroutine`共享数据结构时无需使用互斥锁。

Go语言的特点

语法简洁

Go 语言简单易学,学习曲线平缓,不需要像 C/C++ 语言动辄需要两到三年的学习期。Go 语言被称为“互联网时代的C语言”。Go 语言的风格类似于C语言。其语法在C语言的基础上进行了大幅的简化,去掉了不需要的表达式括号,循环也只有 for 一种表示方法,就可以实现数值、键值等各种遍历。

代码风格统一

Go 语言提供了一套格式化工具——go fmt。

一些 Go 语言的开发环境或者编辑器在保存时,都会使用格式化工具进行修改代码的格式化,这样就保证了不同开发者提交的代码都是统一的格式。

开发效率高

Go 语言成功的项目

nsq bitly 开源的消息队列系统,性能非常高,目前他们每天处理数十亿条的消息
docker :基于 lxc 的一个虚拟打包工具,能够实现 PAAS 平台的组建
packer :用来生成不同平台的镜像文件,例如 VM vbox AWS
skynet :分布式调度框架
Doozer :分布式同步工具,类似 ZooKeeper
Heka mazila 开源的日志处理系统
cbfs couchbase 开源的分布式文件系统
tsuru :开源的 PAAS 平台,和 SAE 实现的功能一模一样
groupcache memcahe 作者写的用于 Google 下载系统的缓存系统
god :类似 redis 的缓存系统,但是支持分布式和扩展性
gor :网络流量抓包和重放工具

Go 环境环境搭建(window)

下载安装 Golang

Go 官网下载地址: https://golang.org/dl/
Go 官方镜像站(推荐): https://golang.google.cn/dl/
选择你要选择的版本
我下载的是1.14.2;

安装软件

双击下一步下一步进行安装,直接无脑装,最新的版本以及13之后的不需要手动配置GOPATH环境变量,如果是之前的版本需要手动配置环境变量。
方法如下:
打开我的电脑,右键属性

 

 找到你下载go之后的文件路径内的bin

复制粘贴到编辑里的新建即可;

说明 Go1.11 版本之后无需手动配置环境变量,使用 go mod 管理项目,也不需要非得把项
目放到 GOPATH 指定目录下,你可以在你磁盘的任何位置新建一个项目。
Go1.13 以后可以彻底不要 GOPATH 了。

GO代码必须在工作空间内。工作空间是一个目录,其中包含三个子目录:

src —- 里面每一个子目录,就是一个包。包内是Go的源码文件

pkg —- 编译后生成的,包的目标文件

bin —- 生成的可执行文件

安装完成后验证一下

win+r打开cmd编辑器,输入

go version

查看 go 环境
go env

验证成功。 

Windows 安装vs code

下载安装 vscode

https://code.visualstudio.com/

 直接无脑下载

汉化vscode

 有部分插件不太好下,需要借助梯子,或者下载已经编译好的可执行文件;

方法借鉴:

第一种

Go 生态系统中有着许多中国 Gopher 们无法获取的模块,比如 golang.org/x/...

设置 CDN 加速代理就很有必要了,以下是几个速度不错的提供者:

七牛:Goproxy 中国 https://goproxy.cn
阿里: mirrors.aliyun.com/goproxy/
官方: < 全球 CDN 加速 https://goproxy.io/>
其他:jfrog 维护 https://gocenter.io

# 启用 Go Modules 功能
$env:GO111MODULE="on"

# 配置 GOPROXY 环境变量,以下三选一

# 1. 七牛 CDN
$env:GOPROXY="https://goproxy.cn,direct"

# 2. 阿里云
$env:GOPROXY="https://mirrors.aliyun.com/goproxy/,direct"

# 3. 官方
$env:GOPROXY="https://goproxy.io,direct"

go env -w GOPROXY=https://goproxy.io,direct
go env -w GO111MODULE=on

第二种

手动从github上下载工具,(执行此步骤前提需要你的电脑上已经安装了git)

第一步:现在自己的GOPATHsrc目录下创建golang.org/x目录

第二步:在终端/cmd中cdGOPATH/src/golang.org/x目录下

第三步:执行git clone https://github.com/golang/tools.git tools命令

第四步:执行git clone https://github.com/golang/lint.git命令

第五步:按下Ctrl/Command+Shift+P再次执行Go:Install/Update Tools命令,在弹出的窗口全选并点击确定,这一次的安装都会SUCCESSED了。

经过上面的步骤就可以安装成功了。 这个时候创建一个Go文件,就能正常使用代码提示、代码格式化等工具了。

第三种:

https://pan.baidu.com/s/102PYdtOKhHqYrPnHeYhBFQ  提取码:weiy 

里面有对应方法,Mac下需要给拷贝的这些文件赋予可执行的权限。

修改vscode终端cmd启动

终端默认的是powershell,有的直接默认是cmd,如果你的是powershell需要修改为cmd

文件 -> 首选项 -> 设置中打开settings页面, 搜索shell或则找Terminal>Integrated>Shell:Windows,

 

添加"terminal.integrated.shell.windows": "C:\\WINDOWS\\System32\\cmd.exe", 后面的地址是你的cmd地址。

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

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

相关文章

人工智能开发人员工作流程、看法、工具统计数据

人工智能开发人员工作流程、看法、工具统计数据 本文目录&#xff1a; 一、人工智能开发所需要的技能和知识 二、开发人工智能需要以下工具 2.1、开发过程中的人工智能工具调查 2.2、AI 工具情绪调查 2.3、AI 工具的优势调查 2.4、人工智能工具的准确性调查 2.5、开发工…

rails console (SQL)查找语句

find可以查找一个 where可以查找多个

Flink DataStream之从集合/文件读数据

从集合中读数据方式一 package test01;import org.apache.flink.api.common.eventtime.WatermarkStrategy; import org.apache.flink.connector.file.src.FileSource; import org.apache.flink.connector.file.src.reader.TextLineInputFormat; import org.apache.flink.core.…

牛客·轻拍牛头

b[i]:输入 a[i]:计数 c[i]:答案void solve() {cin>>n;for(int i0;i<n;i){cin>>b[i];a[b[i]];}for(int i1;i<NN;i){if(a[i]){for(int ji;j<NN;ji)c[j]a[i];}}for(int i0;i<n;i){cout<<c[b[i]]-1<<\n;} }

【深度学习】contrastive loss与triplet loss

自己总结一下&#xff0c; 三元组如果正负样本足够开&#xff0c;距离足够远&#xff0c;loss为0&#xff0c;因为模型已经学的不错了&#xff0c;不需要继续学习。 最好的负样本是&#xff0c;model预测负样本的把握不太大的。 如果负样本是很难分的&#xff0c;例如d(a,p)>…

数据结构:Mysql索引原理(通俗易懂)

目录 前言正文索引结构-数组无序数组有序数组 索引数据结构-HashHash冲突-链式寻址法Hash冲突-再哈希法Hash冲突-开放地址法 索引数据结构-树二叉树平衡二叉树红黑树红黑树的特性红黑树如何减少旋转 B树B树 Mysql的索引一级索引二级索引 总结 前言 在工作中如果经常写业务代码…

信号链噪声分析4

目录 概要 整体架构流程 技术名词解释 技术细节 5.计算信号链的噪声 噪声谱密度 重点注意事项 有源滤波器配置 小结 概要 提示&#xff1a;这里可以添加技术概要 本文介绍对高速宽带宽信号链进行噪声性能理论分析的各个步骤。尽管选择了一个特 定信号链&#xff0c;…

传统商超巨头折戟即时零售

今年的618&#xff0c;包含沃尔玛、永辉、大润发、华润、物美、麦德龙、盒马、联华、家家悦、中百、华联在内10大商超巨头都集体“失声”了。 值得注意的是&#xff0c;今年618不仅各大商超没有公布相关数据&#xff0c;且在所有即时零售平台中&#xff0c;仅有商超到家的合作…

怎么用postman进行自动化接口测试,终于学到了

​ 目录 背景描述 创建一个GET请求 在pre-request scripts构建签名 脚本写在环境变量中 postman console的用法 Collection Runner 自动化API测试 创建接口的测试用例 选择并运行自动化接口测试 测试结果 总结&#xff1a; 背景描述 有一个项目要使用postman进行接…

元宇宙虚拟人物3d建模贯穿产业链数字化转型全链条

随着5G、AI、VR/AR、区块链、云计算、脑机等技术的发展&#xff0c;给构建这个虚拟的宇宙提供了技术支撑。今年以来&#xff0c;因为疫情等原因&#xff0c;大众在虚拟空间停留的时间变得更长&#xff0c;元宇宙概念重新火热。 元宇宙虚拟人的基本特征包括&#xff1a; 沉浸式体…

Android hook、检测及对抗相关

frida——hook 内存访问断点 环境&#xff1a;app&#xff1a;arm64 python 3.10 frida 15.2.2 简单的内存访问断点代码&#xff0c;可能还有些bug&#xff0c;根据apk需要自己改&#xff0c;下文为在apk中指定的地址调用函数时内存断点才被激活&#xff0c;以下需要…

【GESP】2023年03月图形化二级 -- 快乐时光

文章目录 快乐时光1. 准备工作2. 功能实现3. 设计思路与实现&#xff08;1&#xff09;角色、舞台背景设置a. 角色设置b. 舞台背景设置 &#xff08;2&#xff09;脚本编写a. 角色&#xff1a;小猫b. 角色&#xff1a;小猴 4. 评分标准 快乐时光 1. 准备工作 &#xff08;1&am…

CSS知识点汇总(十)--移动端适配

文章目录 怎么做移动端的样式适配&#xff1f;1、方案选择2. iPhoneX 适配方案 怎么做移动端的样式适配&#xff1f; 在移动端虽然整体来说大部分浏览器内核都是 webkit&#xff0c;而且大部分都支持 css3 的所有语法。但手机屏幕尺寸不一样&#xff0c;分辨率不一样&#xff0…

jenkins共享库配置及设计

jenkins共享库做模块封装时遇到的问题总结&#xff1a; 背景描述:使用jenkins共享库对SCM subversion操作进行封装时&#xff0c;使用了Checkout插件&#xff0c;生成的检出脚本代码为 checkout([$class: SubversionSCM, additionalCredentials: [], excludedCommitMessages: …

【Dashy安装使用】本地Linux 部署 Dashy 并远程访问

文章目录 简介1. 安装Dashy2. 安装cpolar3.配置公网访问地址4. 固定域名访问 转载自cpolar极点云文章&#xff1a;本地Linux 部署 Dashy 并远程访问 简介 Dashy 是一个开源的自托管的导航页配置服务&#xff0c;具有易于使用的可视化编辑器、状态检查、小工具和主题等功能。你…

spring源码编译笔记

下载源码 地址https://github.com/spring-projects/spring-framework/tree/v5.2.9.RELEASE 查看gradle对应版本 spring-framework-5.2.9.RELEASE/gradle/wrapper/gradle-wrapper.properties # 其他配置暂未了解具体用处&#xff0c;一切默认值 distributionBaseGRADLE_USE…

vue3案例

代码 <template><div class"app-page"><divv-for"title in data.titleArr":key"title.id"class"title-box"click"onClick(title)"><span>{{ title.name }}</span><img v-if"title…

Java基础——正则表达式

1 概述 正则表达式用于匹配规定格式的字符串。 除了上面的以外&#xff0c;还有一个符号就是括号&#xff0c;括号括起来的表示一个捕获组&#xff0c;一个捕获组可以作为一个重复单位来处理。 2 使用 2.1 判断是否匹配 String自带了一个可以使用正则表达式判断字符串是…

卸载 Navicat:正版 MySQL客户端,真香!

最近看到一款数据库客户端工具&#xff0c;DataGrip&#xff0c;是大名鼎鼎的JetBrains公司出品的&#xff0c;就是那个出品Intellij IDEA的公司。DataGrip是一款数据库管理客户端工具&#xff0c;方便连接到数据库服务器&#xff0c;执行sql、创建表、创建索引以及导出数据等。…

【Python从入门到进阶】25、urllib获取快餐网站店铺数据

接上篇《24、urllib获取网站电影排行》 上一篇我们讲解了如何使用urllib的get请求抓取某某电影排行榜信息。本篇我们来讲解如何使用urllib的post请求抓取某某快餐网站店铺数据。 一、某某快餐网站介绍 1、某某快餐网站 某某快餐店网址为&#xff1a;http://www.kfc.com.cn/k…