这是我参与「第五届青训营 」伴学笔记创作活动的第 1 天
这是一篇迟来的GO语言入门笔记,因为前些日子都不太明白攒青豆,那么今天开始每个青豆我都不能缺席了 写这篇文章的时候,我的go语言水平处于一个刚学完cloudWeGo三大件快速上手的一个水准,对于go的理解也算是和刚开始写go的时候有了比较大的不同,在学go语言之前笔者是使用Java进行开发的,更多的篇幅我会对比go与Java的一些区别,如果你也曾经是一名Javaer,那么这能帮助你更快的理解Go
Go 语言特色
- 简洁、快速、安全
- 并行、有趣、开源
- 内存管理、数组安全、编译迅速
package main
import "fmt"
func main() {
fmt.Println("Hello, World!")
}
首先我们先来了解如何输入输出,这是刚了解一个语言上手的第一步,观察这段代码,开头是package指定包名字,那么不少同学就会思考,这个package名字是随便起的吗,在java里面我们常用域名的反写来表示包名例如org.apache,但是在go中,我们只有package main才能点击运行按钮,就等于只有main包才能有psvm运行 接下来就是import导入,这个和java基本相同 func main()就是psvm 还有一个重要的点就是Println开头的P必须是大写的,这是go语言语法的规定,方法变量以大写开头代表publish,以小写开头代表private
Go语言基本数据
go语言基本类型不像Java只有8种,光int就有8种,分别为:
| 1 | uint8 无符号 8 位整型 (0 到 255) |
|---|---|
| 2 | uint16 无符号 16 位整型 (0 到 65535) |
| 3 | uint32 无符号 32 位整型 (0 到 4294967295) |
| 4 | uint64 无符号 64 位整型 (0 到 18446744073709551615) |
| 5 | int8 有符号 8 位整型 (-128 到 127) |
| 6 | int16 有符号 16 位整型 (-32768 到 32767) |
| 7 | int32 有符号 32 位整型 (-2147483648 到 2147483647) |
| 8 | int64 有符号 64 位整型 (-9223372036854775808 到 9223372036854775807) |
还有其它的类型,这边就不一一列举了
变量定义
package main
import "fmt"
func main() {
//var a string = "im a"
a := "im a"
fmt.Println(a)
//var b, c int = 1, 2
b, c := 1, 2
fmt.Println(b, c)
}
算术运算符方面基本大差不差,和Python差别不大
个人总结
Go语言来说的话,语法和Java还是有一点区别的,同时也有自动GC,唯一的遗憾可能是泛型了,但是我看新的版本也有泛型特性了,未来可期的语言