01【保姆级】-GO语言特点 下载安装 hello

news/2024/10/21 7:37:38/

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

  • 一、概念
    • 1.1 Go语言的诞生
    • 1.2 GO语言的特点:
  • 二、安装go
    • 2.1 安装
    • 2.2 安装环境变量
  • 三、下载&安装goland
    • 3.1 官网下载
    • 3.2 下载后,进行安装:
  • 四、Go语言的特性(重点)
    • 4.1 第一个hello word(详解)
    • 4.2 开发编译。(重要点 / 面试题)
    • 4.3 开发注意事项

之前我学过C、Java、Python语言时总结的经验:

  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 - n2return 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

四、Go语言的特性(重点)

4.1 第一个hello word(详解)

在这里插入图片描述

//表示该 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’

4.2 开发编译。(重要点 / 面试题)

Go语言的执行流程分析:

说明:两种执行流程的方式区别?

  1. 如果我们先编译生成了可执行文件(.exe文件),那么我们可以将该可执行文件拷贝到没有go开发环境的机器上,仍然可以运行。
  2. 如果我们是直接 go run go源代码,那么如果要在另外一个机器上这么运行,也需要go开发环境,否则无法执行。
  3. 在编译时,编译器会将程序运行依赖的库文件包含在可执行文件中,所以,可执行文件变大了很多。

在这里插入图片描述

4.3 开发注意事项

Go程序开发注意事项(重点)

  1. Go源文件以“go”为扩展名。
  2. Go应用程序的执行入口是main()方法
  3. Go语言严格区分大小写。
  4. Go方法由一条条语句构成,每个语句后不需要分号(Go语言会在每行后自动加分号),这4)也体现出Golang的简洁性。
  5. Go编译器是一行行进行编译的,因此我们一行就写一条语句,不能把多条语句写在同个,否则报错
  6. go语言定义的变量或者import的包如果没有使用到,代码不能编译通过。
  7. 大括号都是成对出现的,缺一不可。

http://www.ppmy.cn/news/1192838.html

相关文章

Unity热更新

1,热更新的概念与作用 app更新通常分为两类,一种是整包更新(换包),一种是热更新(不换包,通过网络下载,动态更新资源等)。 整包更新,是指在需要更新时&#x…

CSS以及JavaScript

目录 一.CSS 1.overflow溢出属性 2.定位 二.JavaScript基础 1.JavaScript引入方式 2.JavaScript数据类型 常用方法: 字符串常用方法: 在js里,什么是真,什么是假 数组的常用方法 运算符 (1)算数运…

ARM版CentOS Linux系统镜像安装教程

Linux系统受程序员钟爱,目前国内常见版本有Ubuntu和CentOS等,CentOS是较为稳定的Linux系统。如何在苹果电脑上安装Linux系统呢,小编为大家准备了ARM版CentOS Linux系统镜像文件资源,一起来看看吧! ARM版CentOS Linux系…

常用的vue UI组件库

背景:Vue.js 是一个渐进式 javascript 框架,用于构建 UIS(用户界面)和 SPA(单页应用程序)。UI 组件库的出现提高了我们的开发效率,增强了应用的整体外观、感觉、交互性和可访问性,下…

The 2021 China Collegiate Programming Contest (Harbin) J B I D

Dashboard - The 2021 China Collegiate Programming Contest (Harbin) - Codeforces J 给一个n * m的矩阵,求该矩阵中有少个数既是改行最小,也是该列最小的。 数据范围是1000,可以先预处理行、列最小值,之后挨个判断是不是行最…

在NISQ小型计算机上执行大型并行量子计算的可能性

简介 Steve White提出了密度矩阵重整化群(DMRG)的基本思想,即纠缠是一种有价值的资源,可以用来精确或近似地描述大量子系统。后来,这一思想被理解为优化矩阵积状态(MPS)的算法,支持…

免费(daoban)gpt,同时去除广告

一. 内容简介 免费(daoban)gpt,同时去除广告,https://chat18.aichatos.xyz/,也可当gpt用,就是有点广告,大家也可以支持一下 二. 软件环境 2.1 Tampermonkey 三.主要流程 3.1 创建javascript脚本 点击添加新脚本 …

三维地图数据共享与统一存储

这家总部位于北京的高新企业是一家致力于三维数字地理技术的领军企业,提供中国领先的三维数据获取服务,并依据三维数据自动建模云计算服务、提供全国性的地图与位置服务。这项技术其实我们每天都有可能用到,例如百度地图、高德地图就属于三维…