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

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 开发注意事项

如何学习:

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

一、概念

1.1 Go语言的诞生

01【保姆级】-GO语言特点 && 下载安装 && hello_第1张图片

  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. 01【保姆级】-GO语言特点 && 下载安装 && hello_第2张图片

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

2.2 安装环境变量

01【保姆级】-GO语言特点 && 下载安装 && hello_第3张图片
01【保姆级】-GO语言特点 && 下载安装 && hello_第4张图片
01【保姆级】-GO语言特点 && 下载安装 && hello_第5张图片

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

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

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

    测试:

01【保姆级】-GO语言特点 && 下载安装 && hello_第6张图片

三、下载&安装goland

3.1 官网下载

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

01【保姆级】-GO语言特点 && 下载安装 && hello_第7张图片

我下载的版本是:goland-2023.2.4

3.2 下载后,进行安装:

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

  2. 然后直接下一步
    01【保姆级】-GO语言特点 && 下载安装 && hello_第8张图片

  3. 自定义安装路径。我喜欢装载D盘,但是不喜欢更改后面的默认安装路径。根据自己的习惯吧
    01【保姆级】-GO语言特点 && 下载安装 && hello_第9张图片

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

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

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

Create Assocations框: 是创建文件的关联的,比如说你勾选了java,如果,以后电脑上的.go 文件都会默认启动idea的方式显示打开。
01【保姆级】-GO语言特点 && 下载安装 && hello_第10张图片
01【保姆级】-GO语言特点 && 下载安装 && hello_第11张图片
01【保姆级】-GO语言特点 && 下载安装 && hello_第12张图片

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

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. 大括号都是成对出现的,缺一不可。

你可能感兴趣的:(GO语言,golang,开发语言,后端)