GoNote第一章 环境搭建

news2024/11/20 18:32:28

GoNote第一章 环境搭建

golang介绍

1. 语言介绍

Go 是一个开源的编程语言,它能让构造简单、可靠且高效的软件变得容易。

Go是从2007年末由Robert Griesemer, Rob Pike, Ken Thompson主持开发,后来还加入了Ian Lance Taylor, Russ Cox等人,并最终于2009年11月开源,在2012年早些时候发布了Go 1稳定版本。现在Go的开发已经是完全开放的,并且拥有一个活跃的社区。

Go 语言是谷歌为充分利用现代硬件性能又兼顾开发效率而设计的一种全新语言。

Go 是一种跨平台(Mac OS、Windows、Linux 等)静态编译型语言。拥有媲美 C 语言的强大性能,支持静态类型安全,在普通计算机上能几秒内快速编译一个大项目,开发效率跟动态语言相差无几。

Go 语言在国内拥有非常活跃的社区、不仅大公司的 Go 项目越来越多,中小公司也都在考虑 Go 的应用。当前 Go 语言主要应用于后端服务的开发,未来随着 Go 项目的完善,在系统、游戏、UI界面、AI、物联网等领域,都将被广泛使用。

当然 Go 语言有优点也有一些缺点,完美的东西毕竟太少,如果看好 Go 的未来发展,那么不如抛开成见先来体验一番。

2. 特性说明

跨平台即最终可以执行到Windows,Linux,Unix等操作系统;

静态语言:1)编译工具代码感知更友好;2)商业系统大型开发更有保障;3)静态语言相对封闭,第三方开发包侵害性小;

动态语言:1)代码编写更灵活;2)相对代码更简洁;

编译型和非编译型语言
在这里插入图片描述

Java 和 C# 比较特殊,源代码需要先转换成一种中间文件(字节码文件),然后再将中间文件拿到虚拟机中执行;

安装部署

go官网: https://golang.google.cn/dl/ ,请选择自己对应的系统

中文社区:https://studygolang.com/dl

1. win环境

  1. 下载go.{version}.windows-amd64.msi或者go.{version}.windows-amd64.zip包,此次使用go.{version}.windows-amd64.zip包
  2. 解压压缩文件(这里使用的是D:\Project,后面都基于这个目录)
  3. 配置环境变量GOPATH和GOROOT
# 打开cmd设置
set GOPATH=D:\Project\GOPATH
set GOROOT=D:\Project\GO
set PATH=%PATH%;%GOROOT%\bin

当然应该将这些环境变量配置到系统环境变量中

  1. 此时打开cmd窗口,运行go version即可展示安装golang版本
> go version
go version go1.13.5 windows/amd64

2. linux环境

  1. 下载linux版本对应安装包,这里使用 go{version}.linux-amd64.tar.gz
  2. 进入linux对应目录,解压文件
tar -zxvf go{version}.linux-amd64.tar.gz
  1. 设置环境变量GOPATH和GOROOT
# 临时修改
export GOPATH=D:\Project\GOPATH
export GOROOT=D:\Project\GO
export PATH=%PATH%:%GOROOT%\bin

修改全局环境变量

# 编辑全局环境变量文件
vi /etc/profile
# 追加环境变量都最后
export GOPATH=D:\Project\GOPATH
export GOROOT=D:\Project\GO
export PATH=%PATH%:%GOROOT%\bin
# 然后保存文件,并使文件生效
source /etc/profile
  1. 运行go version查看版本信息
# go version
go version go1.13.5 windows/amd64

运行和编译

新建项目

当然还是hello word示例。创建文件hello.go,使用文本编辑器编辑,一定要注意文件编码为UTF-8

package main

import "fmt"

func main() {
	fmt.Println("Hello World !")
}

保存文件后,cmd到cd文件位置,运行

>go run hello.go
Hello World !

go编译运行

>go build hello.go

>hello.exe
hello world!

导入项目

  • go mod tidy 删除不必要的依赖,添加OS, architecture, and build tags组合所需要的依赖。
  • go mod vendor 可选步骤,用于建立vendor文件夹,用于vendor机制的包管理
  • go mod init 将go项目初始化成module-mode,使用go modules进行依赖管理。
  • go mod verify 校验go.sum记录的依赖信息是否正确

命令行

go mod init/tidy project
go mod download

参考:

https://gitee.com/goflyfox/gostudy

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

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

相关文章

oracle远程克隆pdb

使用远程克隆的先决条件是: oracle版本是12.2以上,开启归档模式以及本地undo. 这里是想从172.16.12.250将PRODPDB1克隆到172.16.12.251下,命名为PRODPDB1COPY。 1 确保源端数据库开启归档模式 备注:进cdb里开启归档。 2 在源数据库中,确保…

2023年环境工程与生物技术国际会议(CoEEB 2023)

会议简介 Brief Introduction 2023年环境工程与生物技术国际会议(CoEEB 2023) 会议时间:2023年5月19日-21日 召开地点:瑞典马尔默 大会官网:www.coeeb.org 2023年环境工程与生物技术国际会议(CoEEB 2023)将围绕“环境工程与生物技术”的最新研…

【教程】Unity 与 Simence PLC 联动通讯

开发平台:Unity 2021 依赖DLL:S7.NET 编程语言:CSharp 6.0 以上   一、前言 Unity 涉及应用行业广泛。在工业方向有着一定方向的涉足与深入。除构建数据看板等内容,也会有模拟物理设备进行虚拟孪生的需求需要解决。而 SIMATIC&a…

测评:腾讯云轻量4核8G12M服务器CPU内存带宽流量

腾讯云轻量4核8G12M应用服务器带宽,12M公网带宽下载速度峰值可达1536KB/秒,折合1.5M/s,每月2000GB月流量,折合每天66GB,系统盘为180GB SSD盘,地域节点可选上海、广州或北京,4核8G服务器网来详细…

02-参数传递+统一响应结果

1. 参数传递: -- 简单参数 如果方法形参数名称与请求方法名称不匹配,采用RequestParam注解 -- 实体参数 -- 数组集合参数 -- 日期参数 -- JSON参数 -- 路径参数 2. 统一响应结果 -- 1. 创建Result类(放到pojo包中) package dem…

centos8 源码安装 apache(内附图片超详细)

♥️作者:小刘在C站 ♥️个人主页:小刘主页 ♥️每天分享云计算网络运维课堂笔记,努力不一定有收获,但一定会有收获加油!一起努力,共赴美好人生! ♥️夕阳下,是最美的绽放&#xff0…

Redis 如何实现库存扣减操作和防止被超卖?

本文已经收录到Github仓库,该仓库包含计算机基础、Java基础、多线程、JVM、数据库、Redis、Spring、Mybatis、SpringMVC、SpringBoot、分布式、微服务、设计模式、架构、校招社招分享等核心知识点,欢迎star~ Github地址:https://github.com/…

《Rank-LIME: Local Model-Agnostic Feature Attribution for Learning to Rank》论文精读

文章目录一、论文信息摘要二、要解决的问题现有工作存在的问题论文给出的方法(Rank-LIME)介绍贡献三、前置知识LIMEFeature AttributionModel-AgnosticLocalLearning to Rank(LTR)单文档方法(PointWise Approach&#…

工业相机标定(张正友标定法)

目录 相机标定的概念 a. 相机标定的定义 b. 相机标定的目的 相机标定的过程 a. 标定板选择 b. 标定板摆放及拍摄 c. 标定板角点提取 张正友标定法 a. 反解相机矩阵 b.反解畸变系数 使用Python进行相机标定 a. 安装OpenCV b. 准备标定板图片 c. 利用OpenCV进行角点…

HashMap、HashTable、ConcurrentHashMap 之间的区别

哈喽,大家好~我是保护小周ღ,本期为大家带来的是 HashMap、HashTable、ConcurrentHashMap 之间的区别,从数据结构到多线程安全~确定不来看看嘛~更多精彩敬请期待:保护小周ღ *★,*:.☆( ̄▽ ̄)/$:*.★* ‘一、…

内存、CPU与指针的知识

在计算机中,内存、CPU和指针是非常重要的概念。在本篇博客中,我们将探讨内存、CPU和指针的知识。 内存的概念 内存是计算机中的一种存储设备,用于存储程序和数据。内存可以被CPU读取和写入,因此是计算机中非常重要的组成部分。在…

006:Mapbox GL添加zoom和旋转控件

第006个 点击查看专栏目录 本示例的目的是介绍演示如何在vue+mapbox中添加zoom和旋转rotation控件 直接复制下面的 vue+mapbox源代码,操作2分钟即可运行实现效果 文章目录 示例效果配置方式示例源代码(共60行)相关API参考:专栏目标示例效果 配置方式 1)查看基础设置:h…

【数据结构第八章】- 排序(万字详解排序算法并用 C 语言实现)

目录 一、基本概念和排序方法概述 1.1 - 排序的基本概念 1.2 - 内部排序的分类 二、插入排序 2.1 - 直接插入排序 2.2 - 希尔排序 三、交换排序 3.1 - 冒泡排序 3.2 - 快速排序 3.2.1 - 递归算法 3.2.2 - 优化 3.2.3 - 非递归算法 四、选择排序 4.1 - 简单选择排…

关于统信UOS(Linux)系统磁盘无损扩容的方法

前言 针对某托管平台分配的4台虚拟服务器,操作系统统信UOS(Linux),数据磁盘空间已满,无损扩容的办法。 (在操作硬盘扩容前,为了安全起见,请通过磁盘快照功能备份服务器系统盘与数据盘…

Java 堆外内存

文章目录Java 堆外内存堆外内存的分配方式使用 Unsafe 类进行分配使用 ByteBuffer 进行分配堆外内存的查看方式Java 堆外内存 在 Java 虚拟机中,分配对象基本上都是在堆上进行的,然而在有些情况下,缓存的数据量非常大时,使用磁盘或…

【Python_Scrapy学习笔记(十四)】基于Scrapy框架的文件管道实现文件抓取(基于Scrapy框架实现多级页面的抓取)

基于Scrapy框架的文件管道实现文件抓取(基于Scrapy框架实现多级页面的抓取) 前言 本文中介绍 如何基于 Scrapy 框架的文件管道实现文件抓取(基于Scrapy框架实现多级页面的抓取),并以抓取 第一PPT 网站的 PPT 模板为例进行展示,同时抓取此网站数据的方式…

Docker安装Nexus搭建Maven私服及介绍

目录前言一、Nexus是什么?二、Docker安装方式1. 拉取镜像2. 创建挂载目录3. 运行4. 容器运行日志 (可选)三、用户登录四、仓库介绍五、创建代理仓库六、上传依赖(重点)七、下载依赖常见问题1、如何把新建的仓库添加到组…

【前端之旅】vue-router声明式导航和编程式导航

一名软件工程专业学生的前端之旅,记录自己对三件套(HTML、CSS、JavaScript)、Jquery、Ajax、Axios、Bootstrap、Node.js、Vue、小程序开发(Uniapp)以及各种UI组件库、前端框架的学习。 【前端之旅】Web基础与开发工具 【前端之旅】手把手教你安装VS Code并附上超实用插件…

科研作图-常用的图像分割指标 (Dice, Iou, Hausdorff) 及其计算

1. 简介 本节内容主要是介绍图像分割中常用指标的定义、公式和代码。常用的指标有Dice、Jaccard、Hausdorff Distance、IOU以及科研作图-Accuracy,F1,Precision,Sensitive中已经介绍的像素准确率等指标。在每个指标介绍时,会使用编写相关代码,以及使用M…

TypeScript学习记录Ts基础

安装及初步使用 1.CMD全局安装 npm install -g typescript2.检查是否安装成功 tsc -V 如报错tsc 不是内部或外部命令,也不是可运行的程序或批处理文件[可参考](https://www.cnblogs.com/sanyekui/p/13157918.html)3.在vscode中新建ts文件01_ts.ts let str:strin…