🌈GoLang介绍
Go is expressive, concise, clean, and efficient. Its concurrency mechanisms make it easy to write programs that get the most out of multicore and networked machines, while its novel type system enables flexible and modular program construction. Go compiles quickly to machine code yet has the convenience of garbage collection and the power of run-time reflection. It's a fast, statically typed, compiled language that feels like a dynamically typed, interpreted language. -- 摘录自golang官方文档
译文: Go表现力强、简洁、干净、高效。它的并发机制使编写程序变得容易,从而最大限度地利用多核和网络机器,而它的新型系统则实现了灵活和模块化的程序构建。Go可以快速编译为机器代码,但同时具有垃圾收集的便利性和运行时反射的功能。这是一种快速、静态类型化、编译的语言,感觉就像是一种动态类型化、解释的语言。
🌞GoLang特色
- 高性能、高并发
- 语法简单、学习曲线平缓
- 丰富的标准库
- 完善的工具链
- 静态链接
- 快速编译
- 跨平台
- 垃圾回收
🚗GoLang起步
搭建开发环境
安装golang
- 进入官方网站:golang.google.cn/
- 选择适合的版本进行下载,参考下载指南:Golang安装
安装开发工具
- goland www.jetbrains.com/go/download…
- vscode code.visualstudio.com/ 开始的可以先使用vscode,是一款轻量级的开发工具,通过安装插件来支持多种语言,同样,使用该开发工具来编写go也是需要安装对应的插件的; 其次是goland,这是一款专门用来编写go的开发工具,对于后续的项目实战开发,可以使用这款软件。
邂逅GOLang-Hello GoLang
package main
import "fmt"
func main() {
fmt.Println("Hello GoLang")
}
GOLang基础语法
通过下面的代码,其实可以看到go语言的变量定义还是蛮简单的,只不过对于熟悉c++, java等语言的小伙伴可能刚开始会觉得很别扭,但问题不大,孰能生巧嘛;其实如果是熟悉javaScript,typeScript等的小伙伴会发现,这些语法还是蛮相似的(纯属个人想法)。
变量定义
// 变量定义
// 方式1: 指明类型
var intNum int = 10
// 方式2: 自动进行类型推断
var str = "hello"
// 方式3: := (赋值+类型推断)
floatNum := 12.0
// 当然也可以先声明,后赋值
var isMan bool
isMan = false
// 注意,在golang中,申明的变量应该都被使用
fmt.Println(intNum, str, floatNum, isMan)
了解的golang的数据类型
go作为一门强类型语言,它提供了很多的数据类型,特别是在基础数据类型那里,一个整型就有10个,笔者也是第一次看到这么多的时候,确实感受到了go的不一般。除了这些基本数据类型,go语言还有很多的复杂数据类型,其中我们会发现function也被放到了数据类型里面,在笔者现有的知识储备中,可能就只是前端的js也有这个类型吧;其次我们也看到了指针,当初学c语言的一道门槛,这次又出现了🤣;另外还有一些新的数据类型:切片(slice)、管道(chain)等,可能刚开始接触都会觉得这些很奇怪,但是我们要相信,新的技术出现,必定是为了解决某一类问题的发生,像go语言里面的数组,我们在定义数组时就会去确定数组的大小,后续就不能再去修改了,那么在很多时候,我们可能希望我们的数组可以动态改变大小,实现数据存放,那么切片出现了,它就可以解决这一问题。
GoLang标准库
官方文档:pkg.go.dev/std
在golang官方文档中,提供了go语言的标准库,我们可以直接在go文件中导入对应的库,实现很多的功能,例如前面的Hello GoLang程序,就使用到了golang内置库fmt
👏最后
第一次比较完整的写文档,平时都是在飞书文档里面记一些笔记,都是供自己学习和参考的,前几天自己也尝试写了一篇文档,但大多数也是摘录吧。其实写一篇文章对我来说还是一种挑战吧,毕竟需要把每个知识都要去理解,不然写出来的文章千疮百孔,由于我也是初次写,可能也存在不少的瑕疵,欢迎各位小伙伴们的指正。最后,非常荣幸可以进入到青训营进行学习,同时也祝愿各位加入青训营的小伙伴们都学有所成,大家一起加油~💪