01【保姆级】-GO语言特点和安装使用和hello

news2025/2/26 15:07:10

01-GO语言基本概念和安装使用

  • 一、概念
    • 1.1 Go语言的诞生
    • 1.2 GO语言的特点:
  • 二、安装go
    • 2.1 安装
    • 2.2 安装环境变量
  • 三、下载&安装goland
    • 3.1 官网下载
    • 3.2 下载后,进行安装:
  • 四、编写Hello(详解)

如何学习:

  1. 先建立整体框架,然后再去抠细节。
  2. 先Know how,然后know why。
  3. 先做出来,然后再去一点点研究,才会事半功倍。
  4. 适当的囫囵吞枣。因为死抠某个知识点很浪费时间的。
  5. 对于GO语言,切记遵守语法格式规则。(例如python语言、例如SpringBoot框架等)
    解释:某些知识点,就是很难了解,那么先做出来,然后继续向前学习,可能在某个时间点我们就会恍然大悟。

一、概念

1.1 Go语言的诞生

在这里插入图片描述

  1. 计算机硬件技术更新频繁,性能提高很快。目前主流的编程语言发展明显落后于硬件,不能合理利用多核多CPU的优势提升软件系统性能。
  2. 软件系统复杂度越来越高,维护成本越来越高,目前缺乏一个足够简洁高效的编程语言。[现有的编程语言: 1.风格不统一 2计算能力不够 3.处理大并发不够好]
  3. 企业运行维护很多c/c++的项目,c/c++程序运行速度虽然很快,但是编译速度确很慢,同时还存在内存泄漏的一系列的困扰需要解决。

1.2 GO语言的特点:

Go 语言保证了既能到达静态编译语言【比如C语言】的安全和性能 ,又达到了动态语言【比如Python语言】开发维护的高效率,使用一个表达式来形容 Go 语言: Go = C + Python,说明 Go 语言既有 C静态语言程序的运行速度,又能达到 Pvthon 动态语言的快速开发。

  1. 从C语言中继承了很多理念,包括表达式语法,控制结构,基础数据类型,调用参数传值,指针等,也保留了和 C语言一样的编译执行方式及弱化的指针
    举一个案例(体验):
//go语言的指针的使用特点
func testPtr(num *int){
	*num = 20
}

  1. 引入包的概念,用于组织程序结构,Go语言的一个文件都要归属于一个包,而不能单独存在。
package main 

import "fmt"
func sayHello(){
	fmt.Println("hello")
}
  1. 垃圾回收机制,内存自动回收,不需开发人员管理。

从语言中并不支持垃圾回收机制,就会出现内存泄露。而GO支持垃圾回收,相当于对C语言进行了优化。

  1. 天然并发
    1. 从语言层面支持并发,实现简单。

    2. goroutine,轻量级线程,可实现大并发处理,高效利用多核

    3. 基于CPS并发模型(Communicating Sequential Processes)实现

GO服务端时:数据处理能力强,处理大并发有优势
游戏处理时:数据通道比较强

  1. 吸收了管道通信机制,形成Go语言特有的管道channel。通过管道channel,可以实现不同的goroute之间的相互通信。

  2. 函数返回多个值(示意代码)


//写一个函数,实现同时返回 和,差
//go 函数支持返回多个值

// n1 n2 是传入的两个参数,,后面是返回两个int类型的数据。
func getSumAndSub(nl int, n2 int) (int, int ){
	sum := n1 + n2 //go 语句后面不要带分号
	sub := n1 - n2
	return sum , sub
}
  1. 新的创新:比如切片(例如java的集合)、延时执行defer(方便回收资源)等

二、安装go

2.1 安装

  1. 官网下载go
  2. 我下载的版本是:1.9.2.windows-amd64 解压皆可以使用形式。
  3. 在这里插入图片描述

D:\Program Files\go\go1.9.2.windows-amd64\bin>go version
go version go1.9.2 windows/amd64

2.2 安装环境变量

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 所有的路径是:D:\Program Files\go\go1.9.2.windows-amd64\bin

  • 关于“GOROOT”路径是:D:\Program Files\go\go1.9.2.windows-amd64

  • 关于PATH路径是:%GOROOT%\bin

    测试:

在这里插入图片描述

三、下载&安装goland

3.1 官网下载

下载地址:https://www.jetbrains.com/go/download/#section=windows

在这里插入图片描述

我下载的版本是:goland-2023.2.4

3.2 下载后,进行安装:

  1. 双机执行下载后的.exe文件

  2. 然后直接下一步
    在这里插入图片描述

  3. 自定义安装路径。我喜欢装载D盘,但是不喜欢更改后面的默认安装路径。根据自己的习惯吧
    在这里插入图片描述

  4. 我把所有的选项解释,都放入下面了,如果不知道怎么选,跟着我来就可以了。

Update context menu框:是更新菜单的,可选可不选。

Create Desktop Shortcut框:是选择多少位的快捷方式,根据电脑系统来选择就可以了。
Download and install 32-bit JetBrains Runtime框:是下载JRE的,本机没有的装的话可以勾选下载。一般是自己在电脑另外安装jdk环境,所以可以不勾。如果已经安装了jdk,也是建议不用勾选了的

Create Assocations框: 是创建文件的关联的,比如说你勾选了java,如果,以后电脑上的.go 文件都会默认启动idea的方式显示打开。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

看了好多广告得到的,懂的用:

MXMQUYT815-eyJsaWNlbnNlSWQiOiJNWE1RVVlUODE1IiwibGljZW5zZWVOYW1lIjoiSHVuYW4gSW5zdGl0dXRlIG9mIFNjaWVuY2UgYW5kIFRlY2hub2xvZ3kiLCJhc3NpZ25lZU5hbWUiOiJqaWtlIGNvZGUiLCJhc3NpZ25lZUVtYWlsIjoiamV0YnJhaW5zMjMwMjA2QG91dGxvb2suY29tIiwibGljZW5zZVJlc3RyaWN0aW9uIjoiRm9yIGVkdWNhdGlvbmFsIHVzZSBvbmx5IiwiY2hlY2tDb25jdXJyZW50VXNlIjpmYWxzZSwicHJvZHVjdHMiOlt7ImNvZGUiOiJEUE4iLCJwYWlkVXBUbyI6IjIwMjQtMDItMDkiLCJleHRlbmRlZCI6ZmFsc2V9LHsiY29kZSI6IkRCIiwicGFpZFVwVG8iOiIyMDI0LTAyLTA5IiwiZXh0ZW5kZWQiOmZhbHNlfSx7ImNvZGUiOiJQUyIsInBhaWRVcFRvIjoiMjAyNC0wMi0wOSIsImV4dGVuZGVkIjpmYWxzZX0seyJjb2RlIjoiSUkiLCJwYWlkVXBUbyI6IjIwMjQtMDItMDkiLCJleHRlbmRlZCI6ZmFsc2V9LHsiY29kZSI6IlJTQyIsInBhaWRVcFRvIjoiMjAyNC0wMi0wOSIsImV4dGVuZGVkIjp0cnVlfSx7ImNvZGUiOiJHTyIsInBhaWRVcFRvIjoiMjAyNC0wMi0wOSIsImV4dGVuZGVkIjpmYWxzZX0seyJjb2RlIjoiRE0iLCJwYWlkVXBUbyI6IjIwMjQtMDItMDkiLCJleHRlbmRlZCI6ZmFsc2V9LHsiY29kZSI6IlJTRiIsInBhaWRVcFRvIjoiMjAyNC0wMi0wOSIsImV4dGVuZGVkIjp0cnVlfSx7ImNvZGUiOiJEUyIsInBhaWRVcFRvIjoiMjAyNC0wMi0wOSIsImV4dGVuZGVkIjpmYWxzZX0seyJjb2RlIjoiUEMiLCJwYWlkVXBUbyI6IjIwMjQtMDItMDkiLCJleHRlbmRlZCI6ZmFsc2V9LHsiY29kZSI6IlJDIiwicGFpZFVwVG8iOiIyMDI0LTAyLTA5IiwiZXh0ZW5kZWQiOmZhbHNlfSx7ImNvZGUiOiJDTCIsInBhaWRVcFRvIjoiMjAyNC0wMi0wOSIsImV4dGVuZGVkIjpmYWxzZX0seyJjb2RlIjoiV1MiLCJwYWlkVXBUbyI6IjIwMjQtMDItMDkiLCJleHRlbmRlZCI6ZmFsc2V9LHsiY29kZSI6IlJEIiwicGFpZFVwVG8iOiIyMDI0LTAyLTA5IiwiZXh0ZW5kZWQiOmZhbHNlfSx7ImNvZGUiOiJSUzAiLCJwYWlkVXBUbyI6IjIwMjQtMDItMDkiLCJleHRlbmRlZCI6ZmFsc2V9LHsiY29kZSI6IlJNIiwicGFpZFVwVG8iOiIyMDI0LTAyLTA5IiwiZXh0ZW5kZWQiOmZhbHNlfSx7ImNvZGUiOiJBQyIsInBhaWRVcFRvIjoiMjAyNC0wMi0wOSIsImV4dGVuZGVkIjpmYWxzZX0seyJjb2RlIjoiUlNWIiwicGFpZFVwVG8iOiIyMDI0LTAyLTA5IiwiZXh0ZW5kZWQiOnRydWV9LHsiY29kZSI6IkRDIiwicGFpZFVwVG8iOiIyMDI0LTAyLTA5IiwiZXh0ZW5kZWQiOmZhbHNlfSx7ImNvZGUiOiJSU1UiLCJwYWlkVXBUbyI6IjIwMjQtMDItMDkiLCJleHRlbmRlZCI6ZmFsc2V9LHsiY29kZSI6IkRQIiwicGFpZFVwVG8iOiIyMDI0LTAyLTA5IiwiZXh0ZW5kZWQiOnRydWV9LHsiY29kZSI6IlBEQiIsInBhaWRVcFRvIjoiMjAyNC0wMi0wOSIsImV4dGVuZGVkIjp0cnVlfSx7ImNvZGUiOiJQV1MiLCJwYWlkVXBUbyI6IjIwMjQtMDItMDkiLCJleHRlbmRlZCI6dHJ1ZX0seyJjb2RlIjoiUFNJIiwicGFpZFVwVG8iOiIyMDI0LTAyLTA5IiwiZXh0ZW5kZWQiOnRydWV9LHsiY29kZSI6IlBQUyIsInBhaWRVcFRvIjoiMjAyNC0wMi0wOSIsImV4dGVuZGVkIjp0cnVlfSx7ImNvZGUiOiJQQ1dNUCIsInBhaWRVcFRvIjoiMjAyNC0wMi0wOSIsImV4dGVuZGVkIjp0cnVlfSx7ImNvZGUiOiJQR08iLCJwYWlkVXBUbyI6IjIwMjQtMDItMDkiLCJleHRlbmRlZCI6dHJ1ZX0seyJjb2RlIjoiUFBDIiwicGFpZFVwVG8iOiIyMDI0LTAyLTA5IiwiZXh0ZW5kZWQiOnRydWV9LHsiY29kZSI6IlBSQiIsInBhaWRVcFRvIjoiMjAyNC0wMi0wOSIsImV4dGVuZGVkIjp0cnVlfSx7ImNvZGUiOiJQU1ciLCJwYWlkVXBUbyI6IjIwMjQtMDItMDkiLCJleHRlbmRlZCI6dHJ1ZX0seyJjb2RlIjoiUlMiLCJwYWlkVXBUbyI6IjIwMjQtMDItMDkiLCJleHRlbmRlZCI6dHJ1ZX1dLCJtZXRhZGF0YSI6IjAxMjAyMzAyMDZMUEFBMDA4MDA5IiwiaGFzaCI6IjQyNTQ5NjcyLzIwMDk1Nzk5Oi03OTk2MzgyNTgiLCJncmFjZVBlcmlvZERheXMiOjcsImF1dG9Qcm9sb25nYXRlZCI6ZmFsc2UsImlzQXV0b1Byb2xvbmdhdGVkIjpmYWxzZX0=-OXfbtL5lwz9bDhPZ0POhH6h8h1ubDm0bzkRWX33IjJlRmK4BkGzO65BWjIJ+ndT0stY8uOUWo4FM1Aej+YGXMTlyD3rcCBkcFN6dB6FEVelLYoBevxN9myhp0IGvfHaLQ6hoVxAKr0AkSAlSsgKVN6gOYw7Nn8lR/ivpuXXteZWiG4x7KCxHM/6/oPXAbQQmD1sy2q05s1tsvxBltZbsFJ3/Yv6lG89h0YlN9FvFciqUM6B1Cc5Fo7a6oUOfpyCJKPSwzyzkxLOhlL4QO6/LfQ3zNO9wirnz506mZXh3oB+wS1gDFLk7RehEQMqdqnjh+zaNKi1QKB/cyK1Op0oDTQ==-MIIETDCCAjSgAwIBAgIBDzANBgkqhkiG9w0BAQsFADAYMRYwFAYDVQQDDA1KZXRQcm9maWxlIENBMB4XDTIyMTAxMDE2MDU0NFoXDTI0MTAxMTE2MDU0NFowHzEdMBsGA1UEAwwUcHJvZDJ5LWZyb20tMjAyMjEwMTAwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC/W3uCpU5M2y48rUR/3fFR6y4xj1nOm3rIuGp2brELVGzdgK2BezjnDXpAxVDw5657hBkAUMoyByiDs2MgmVi9IcqdAwpk988/Daaajq9xuU1of59jH9eQ9c3BmsEtdA4boN3VpenYKATwmpKYkJKVc07ZKoXL6kSyZuF7Jq7HoQZcclChbF75QJPGbri3cw9vDk/e46kuzfwpGftvl6+vKibpInO6Dv0ocwImDbOutyZC7E+BwpEm1TJZW4XovMBegHhWC04cJvpH1u98xoR94ichw0jKhdppywARe43rGU96163RckIuFmFDQKZV9SMUrwpQFu4Z2D5yTNqnlLRfAgMBAAGjgZkwgZYwCQYDVR0TBAIwADAdBgNVHQ4EFgQU5FZqQ4gnVc+inIeZF+o3ID+VhcEwSAYDVR0jBEEwP4AUo562SGdCEjZBvW3gubSgUouX8bOhHKQaMBgxFjAUBgNVBAMMDUpldFByb2ZpbGUgQ0GCCQDSbLGDsoN54TATBgNVHSUEDDAKBggrBgEFBQcDATALBgNVHQ8EBAMCBaAwDQYJKoZIhvcNAQELBQADggIBANLG1anEKid4W87vQkqWaQTkRtFKJ2GFtBeMhvLhIyM6Cg3FdQnMZr0qr9mlV0w289pf/+M14J7S7SgsfwxMJvFbw9gZlwHvhBl24N349GuthshGO9P9eKmNPgyTJzTtw6FedXrrHV99nC7spaY84e+DqfHGYOzMJDrg8xHDYLLHk5Q2z5TlrztXMbtLhjPKrc2+ZajFFshgE5eowfkutSYxeX8uA5czFNT1ZxmDwX1KIelbqhh6XkMQFJui8v8Eo396/sN3RAQSfvBd7Syhch2vlaMP4FAB11AlMKO2x/1hoKiHBU3oU3OKRTfoUTfy1uH3T+t03k1Qkr0dqgHLxiv6QU5WrarR9tx/dapqbsSmrYapmJ7S5+ghc4FTWxXJB1cjJRh3X+gwJIHjOVW+5ZVqXTG2s2Jwi2daDt6XYeigxgL2SlQpeL5kvXNCcuSJurJVcRZFYUkzVv85XfDauqGxYqaehPcK2TzmcXOUWPfxQxLJd2TrqSiO+mseqqkNTb3ZDiYS/ZqdQoGYIUwJqXo+EDgqlmuWUhkWwCkyo4rtTZeAj+nP00v3n8JmXtO30Fip+lxpfsVR3tO1hk4Vi2kmVjXyRkW2G7D7WAVt+91ahFoSeRWlKyb4KcvGvwUaa43fWLem2hyI4di2pZdr3fcYJ3xvL5ejL3m14bKsfoOv

四、编写Hello(详解)

在这里插入图片描述

//表示该 hello.go 文件所在的包是 main,在 go 中,
// 每个文件都必须归属于一个包。
package main


//表示:引入一个包,包名 fmt,引入该包后,就可以使用 fmt包的函数,比如: fimt.Println
import "fmt"

// func 是一个关键字,表示一个函数。
// main 是函数名,是一个主函数,即我们程序的入口。
func main() {
	
	//表示调用 fmt 包的函数 Println 输出“hello,world’
	fmt.Println("hello,world") //输出hello
}

  1. go 文件的后缀是 go

  2. package main
    表示该 hello.go 文件所在的包是 main,在 go 中,每个文件都必须归属于一个包。

  3. import “fmt”
    表示:引入一个包,包名 fmt,引入该包后,就可以使用 fmt包的函数,比如: fimt.Println

  4. func main() {

    }
    func 是一个关键字,表示一个函数。
    main 是函数名,是一个主函数,即我们程序的入口。

  5. fmt.Println(“hello”)
    表示调用 fmt 包的函数 Println 输出“hello,world’

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

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

相关文章

AI视频监控汇聚平台EasyCVR增加算法功能小tips

安防视频监控/视频集中存储/云存储/磁盘阵列EasyCVR平台可拓展性强、视频能力灵活、部署轻快,可支持的主流标准协议有国标GB28181、RTSP/Onvif、RTMP等,以及支持厂家私有协议与SDK接入,包括海康Ehome、海大宇等设备的SDK等,能对外…

【原理】循环水系统【组件介绍】

目录 前言一、工作原理二、主要组件2-1、 保温水箱2-2、 热水泵2-3、 电加热器2-4、 管式换热器2-5、 开关阀、流量阀和调节阀2-6、 冷却塔2-7、 冷水泵 总结 前言 循环水系统是一种用于维持恒定温度或温度范围的工业或建筑设施中的热力控制系统。该系统通过循环水来传递热量&a…

智慧公厕:科技赋予公共卫生新生命,提升城市管理品质

在现代化城市中,公共卫生设施的发展与提升一直是对城市管理者和市民的共同期望。然而,传统的公共厕所常常令人困扰,脏乱臭成为难题。为了解决这一难题,广州中期科技科技有限公司全新升级的智慧公厕整体解决方案,补誉为…

配音软件怎么选择?(简单又实用)

随着短视频、自媒体的普及推广越来越好,想必大家都了解到配音软件的重要性了,用对配音软件,借助AI的力量让我们的作品达到事半功倍是效果,目前市面上有很多不同类型的配音软件,从专业的录音室级别的软件到简单易用的家…

Videos

文章目录 Video ClassificationEarly Fusion, Late Fusion, 3D CNN,Recognizing Actions from Motion 从动作中识别行为接下来介绍新技术回顾一下:非常多的video工作 Video Classification Early Fusion, Late Fusion, 3D CNN, Recognizing Actions from Motion 从…

谷歌浏览器升级http强转https解决

mac电脑有点卡,重启以后,谷歌浏览器默认升级 后续访问公司http网址,自动跳转为https网址,导致进入不了平台 网上找了很多方案都是,地址栏中输入【chrome://net-internals/#hsts】,在最下面的【Delete dom…

软件测试常见1000道面试题(答案+文档)

软件测试面试百题 1、问:你在测试中发现了一个bug,但是开发经理认为这不是一个bug,你应该怎样解决? 首先,将问题提交到缺陷管理库里面进行备案。 然后,要获取判断的依据和标准: 根据需求说明书、产品说…

利用移动互联、物联网、智能算法、地理信息系统、大数据分析等信息技术开发的智慧工地云平台源码

智慧工地是指利用移动互联、物联网、智能算法、地理信息系统、大数据挖掘分析等信息技术,提高项目现场的“人•机•料•法•环•安”等施工要素信息化管理水平,实现工程施工可视化智能管理,并逐步实现绿色生态建造。 技术架构:微…

ELK 日志分析实践

一 ELK 1 ELK 概述 ELK是一整套解决方案,是三个软件产品的首字母缩写,很多公司都在使用,如:Sina、携程、华为、美团等 Elasticsearch:负责日志检索和储存 Logstash:负责日志的收集和分析、处理 Kibana&#xf…

瑞明达:脚踏实地,为实体经济贡献“瑞明达”力量

实体经济是指以实际物质生产和经营为主要特征的经济形态,是经济发展的基础和主体。瑞明达团队一直关注着实体经济的发展,也在不断探索如何运用科技手段和管理经验助力实体经济的发展。团队将从几个方面介绍瑞明达团队的看法和实践经验。 实体经济在国家经…

缺失的第一个正数

题目链接 缺失的第一个正数 题目描述 注意点 实现时间复杂度为 O(n) 并且只使用常数级别额外空间的解决方案 解答思路 关键是要实现时间复杂度为 O(n) 并且只使用常数级别额外空间,需要将数字出现情况存储再原数组上,思路为:假设数组的长…

Instagram 运营技巧,这4个基本设置很重要!

ins这个平台相信很多跨境卖家都不陌生,但想要运营好这个平台却不是那么容易的。想要在ins上获得更多的自然流量,基本设置和功能就要搞懂,今天就给大家分享4个基本的ins设置,以及如何更好地使用 Hashtag! Instagram Bio…

在防御CC攻击上,高防CDN起着什么作用?

在当今数字化世界中,网络安全攻击已经成为普遍而严峻的威胁。特别是分布式拒绝服务攻击(DDoS)和CC攻击,它们有潜力使网络服务陷入完全瘫痪状态。为了应对这些威胁,采用高级防御CDN(内容传递网络&#xff09…

Navicat连接postgresql数据库 -->华为云服务器

Navicat连接postgresql数据库 -->华为云服务器 2.开放服务器端口:54323.Navicat连接postgresql数据库 2.开放服务器端口:5432 1-1.选择安全组 1-2. 添加规则 1-3.开放5432端口规则 1-4.查看规则 3.Navicat连接postgresql数据库

自动化测试入门 —— 自动化测试概论

整篇论述总的来讲会很长,从自动化的思维、模型、工具,到各层次的自动化测试技术、测试框架、测试平台,包括面向未来的自动化技术都将涉及,因此打算拆成几个部分去写。此外,由于涉及的范围比较广泛,部分内容…

英飞凌TC3xx-Overlay

目录 1.数据访问重定向 2.寄存器说明 3.Overlay功能配置 3.1 确认用于重定向的CPU 3.2 配置重定向Block大小 3.3 配置目标地址和重定向地址 4.结果验证 5.小结 今天说要开个专栏讲讲XCP标定,但在将标定之前,先把英飞凌专门为标定功能设计overlay…

应用RFID标签实现工业智能制造生产线的可视化管理

随着自动化和信息化的不断推广,工业智能化成为了备受关注的话题,对于企业来说,生产线上的工艺流程和各个环节的信息是至关重要的,在物联网感知层中,RFID作为重要的核心组成部分,通过非接触式的无感知识别和…

WebSocket协议在java中的应用

文章目录 一、WebSocket介绍1.Http和WebSocket比较:2.应用场景 二、WebSocket使用步骤1.客户端搭建2.导入maven坐标3.导入WebSocket服务端组件WebSocketServer,用于和客户端通信1.ServerEndpoint2.OnOpen3.OnMessage4.OnClose 4.导入配置类WebSocketConf…

直流高压发生器技术特点

武汉凯迪正大直流高压发生器产品技术特点: 1、体积更小、重量更轻、更美观、更可靠、操作简便、功能齐全,便于野外使用。 2、采用PWM中频脉宽调制技术、脉冲串逻辑阵列调制,采用大功率IGBT器件和电压大反馈,从而使输出高压稳定度…

【C语法学习】8 - puts()函数

文章目录 1 函数原型2 参数3 返回值4 输出机制5 示例 1 函数原型 puts():将str指向的内存空间中存储的字符串发送至标准输出流stdout,函数原型如下: int puts(const char *str)2 参数 puts()函数的参数只有一个str: str是一个…