Go入门基础
go语言介绍
GO即Golang,是Google公司在2009年11月正式对外公开的一门编程语言
Go语言是一门【静态的 强类型语言】,是区别于解析性语言的编译型语言(静态:就是类型固定 强类型:不同类型不允许直接运算)
解析性语言 ---是原代码解析一行执行一行
编译型语言 ---原代码是一次性编译成机器语言,然后有机器直接执行机器代码即可
#编译型:
c,java,c++,c#,go 编译成可执行文件---》在操作系统上运行,不需要装任何东西
# 解释型:
python,nodejs,php
# java:
java有编译过程---》没有编译成机器语言---》字节码文件,机器识别不了---》java虚拟机:jvm能识别
运行java必须要有jvm
jvm:java虚拟机
jre:java运行时环境
jdk:java开发环境
// go语言的特性
--跨平台 编译型语言
--语法接近C语言
--管道(channel),切片(slice),并发(routine)
-- 有垃圾回收机制
-- 支持面向对象和面相过程的编程的模式
Go语言的特性
Go语言是一种由Google开发的开源编程语言,其主要特性包括:
简洁性:Go语言具有简洁的语法和清晰的结构,易于学习和阅读。它避免了冗余代码,使程序更易于维护。
并发性:Go语言原生支持并发编程,它提供了轻量级的协程(goroutine)和通信机制(channel),使得并发编程变得更加容易和高效。
高效性:Go语言的编译速度非常快,生成的可执行文件也非常小。同时,它采用了垃圾回收机制,可以自动管理内存,避免了手动内存管理的烦恼。
开发效率:Go语言拥有丰富的标准库和工具链,可以快速开发高效、可靠的应用程序。
跨平台性:Go语言的编译器可以生成多种操作系统和硬件平台的可执行文件,因此可以轻松地实现跨平台开发。
静态类型:Go语言是一种静态类型语言,可以在编译时捕获许多类型错误,这有助于提高程序的稳定性和可靠性。
内存安全:Go语言的内存管理机制可以有效地防止内存泄漏和指针错误,提高了程序的健壮性。
总之,Go语言是一种简单、高效、可靠、安全、并发的编程语言,非常适合构建网络服务、分布式系统和高并发程序等
go语言的管道(channel),切片(slice),并发(routine)
管道(channel):管道是Go语言中一种基于通信的并发编程机制,它可以在不同的goroutine之间传递数据。管道可以是有缓冲的或无缓冲的,有缓冲的管道可以缓存一定量的数据,而无缓冲的管道则会阻塞发送和接收操作,直到有对应的接收或发送操作。
切片(slice):切片是Go语言中一种动态数组,它可以根据需要自动扩展或收缩,非常方便。切片可以通过类似于数组的下标来访问元素,还可以进行切片、追加、复制等操作。
并发(routine):并发是Go语言的核心特性之一,它通过goroutine来实现。goroutine是一种轻量级的线程,可以在不同的CPU核心上运行,可以非常高效地实现并发编程。Go语言还提供了通道(channel)和锁(mutex)等同步机制来保证并发程序的正确性。
这三个特性都是Go语言的重要特色,它们的结合使得Go语言在并发编程和高性能计算方面具有很强的优势。
go语言的发展
早在2015 年8月19日,就实现了架构变化,同时保留了和就版本的兼容性,这次更新中移除了“最后残余的C代码”,--以后在进行开发go就是直接使用go来开发了 称为 “语言的自举”
在2018年8月24日 gol.11 --modules和webAssembly支持 Go mod模式:包管理
——最新 是 1.20版
Go语言,又称Golang,是一种由Google开发的开源编程语言。该语言于2007年开
始开发,于2009年正式发布,并于2012年发布了Go 1.0版本。Go语言的设计目标
是提供一种高效、简洁、可靠的编程语言,特别适用于大规模分布式系统和网络编程。
自发布以来,Go语言得到了广泛的应用和发展。许多知名公司,如Google、Uber、Twitch、Netflix、Dropbox等都在使用Go语言。Go语言的用户数量和贡献者数量都在不断增长,社区也非常活跃。
在未来,Go语言的前景非常广阔。随着云计算和大数据处理的需求不断增长,Go语言作为一种高效的编程语言,将会有更多的应用场景。Go语言的并发模型和垃圾回
收机制都被认为是其最大的优点之一,这也使得Go语言在网络编程、分布式系统、云计算等领域得到广泛应用。
此外,Go语言在Web开发、网络编程、系统编程等领域都有非常广泛的应用。Go语言的简单易用性也使得它成为了许多初学者入门的首选语言之一。因此,可以预计
在未来,Go语言将会继续快速发展,并成为各种领域的重要编程语言之一。
go语言的应用程序
-- k8s ,doker ,七牛
七牛:ceo 是许式伟,他在go的基础上进行优化,开发了Go+ 但是没什么人用
应用领域
内存kv数据库,例如boltDB,levelDB
云平台
目前Go语言已经⼴泛应用于人工智能、云计算开发、容器虚拟化、⼤数据开发、数据分析及科学计算、运维开发、爬虫开发、游戏开发等领域。
Go语言简单易学,天生支持并发,完美契合当下高并发的互联网生态
Go是一种由Google开发的开源编程语言,旨在提高程序的可读性、可维护性和可靠性。下面是介绍Go语言开发环境的概述:
Go语言官方网站(https://golang.org/)提供了Go语言的安装包和相关工具的下载,包括Go编译器、Go语言文档、Go自带的包管理工具等。
GoLand是JetBrains公司为Go语言开发者推出的集成开发环境(IDE),提供了强大的代码编辑、自动补全、调试等功能,支持多种操作系统。
Visual Studio Code是一款轻量级的编辑器,拥有许多丰富的扩展,包括Go语言相关的扩展,可以提供良好的代码编辑和调试体验。
LiteIDE是一款专门为Go语言开发者打造的轻量级集成开发环境,提供了代码补全、代码导航、调试等功能。
Sublime Text是一款流行的文本编辑器,支持多种编程语言,包括Go语言。通过安装Go语言相关的插件,可以获得基本的代码编辑功能。
无论使用哪种开发环境,都需要安装Go语言的编译器和相关的工具,可以根据个人喜好和需要选择适合自己的开发环境。
go语言开发环境搭建
要搭建Go语言开发环境,需要安装Go语言编译器和一些相关的工具。以下是在Windows、Mac和Linux操作系统上搭建Go语言开发环境的基本步骤:
在Windows上搭建Go语言开发环境
下载并安装Go语言编译器。可以从Go官方网站上下载相应的Windows安装程序(msi格式),然后按照提示进行安装。
设置Go语言开发环境的环境变量。将Go语言的bin目录添加到PATH环境变量中。打开“控制面板” -> “系统和安全” -> “系统” -> “高级系统设置” -> “环境变量”,找到PATH变量并编辑,添加Go语言的bin目录路径。
验证Go语言的安装和环境变量的设置。打开命令行窗口,输入“go version”命令,如果输出了Go语言的版本信息,则说明安装和环境变量设置都成功了。
安装编辑器或IDE。可以选择Visual Studio Code、GoLand、Sublime Text、LiteIDE等多种编辑器和IDE,下载安装即可。
在Mac上搭建Go语言开发环境
使用Homebrew安装Go语言编译器。打开终端窗口,输入“brew install go”命令,等待安装完成。
设置Go语言开发环境的环境变量。在终端窗口中,打开“~/.bash_profile”文件,添加“export PATH=$PATH:/usr/local/go/bin”一行代码。
验证Go语言的安装和环境变量的设置。在终端窗口中输入“go version”命令,如果输出了Go语言的版本信息,则说明安装和环境变量设置都成功了。
安装编辑器或IDE。可以选择Visual Studio Code、GoLand、Sublime Text、LiteIDE等多种编辑器和IDE,下载安装即可。
在Linux上搭建Go语言开发环境
下载并安装Go语言编译器。可以从Go官方网站上下载相应的Linux安装包,然后按照提示进行安装。
设置Go语言开发环境的环境变量。将Go语言的bin目录添加到PATH环境变量中。打开“/etc/profile”文件,在末尾添加“export PATH=$PATH:/usr/local/go/bin”一行代码。
验证Go语言的安装和环境变量的设置。打开终端窗口,输入“go version”命令,如果输出了Go语言的版本信息,则说明安装和环境变量设置都成功了。
安装编辑器或IDE。可以选择Visual Studio Code、GoLand、Sublime Text、LiteIDE等多种编辑器和IDE,下载安装即可。
搭建Go语言开发环境需要以下步骤:
下载安装Go语言的编译器和工具包,可以从Go语言官方网站(https://golang.org/dl/)下载对应操作系统的安装包,或者通过包管理工具(如apt、yum等)进行安装。
配置Go语言的环境变量,包括GOPATH、GOROOT、GOBIN等。GOPATH指定Go语言项目的工作路径,GOROOT指定Go语言的安装路径,GOBIN指定可执行文件的输出路径。这些环境变量的设置可以通过操作系统的系统变量或者.profile文件等进行配置。
安装适合自己的代码编辑器或集成开发环境(IDE),如GoLand、Visual Studio Code、LiteIDE等。这些工具可以提供代码编辑、自动补全、调试等功能。
安装相应的Go语言扩展,以便在编辑器或IDE中使用Go语言的功能。例如,在Visual Studio Code中可以通过在扩展商店搜索“Go”来找到Go语言的扩展。
创建Go语言项目,可以使用命令行工具或者代码编辑器来创建项目。例如,在命令行中执行“mkdir myproject”创建一个名为“myproject”的目录,然后执行“cd myproject”进入该目录,最后执行“go mod init myproject”来初始化一个新的Go模块。
编写并运行Go语言代码,可以使用命令行工具或者代码编辑器来编写代码。例如,在Visual Studio Code中创建一个名为“main.go”的文件,输入以下代码:
package main // 这是声明这个go文件属于那个包,main有着特殊的含义,一个项目想要运行必须要有一个入口(main包),运行的入口就是main包下的main函数
import "fmt" // 这个表示导入fmt包,这是goland自动导入的,使用那个包,编辑器就会自动导入哪个包
// 如果包导入了但是没有使用,就会报错,编译的时候
func main() {
// 会在控制台输出hello world
fmt.Println("Hello, world!")
}
// func 是在定义一个函数, main是函数名,没有参数,也没有返回值,是整个项目的入口
编译代码:
1.先将代码编译成可执行文件,默认会编译成当前平台的可执行文件
2.支持跨平台编译:如果想要跨平台编译,(比如编译linux的)就可以使用交叉编译
编译流程:
1.执行命令:
go build 文件名
go run
编译好久可以直接双击运行即可
在开发阶段,可以直接编译并运行,但是生成的可执行文件,不在当前的路径,
尽量是用完就进行删除,因为下一次生成的测试文件不一样了