为什么突然想学习go,因为我一直学的比较杂,想选一个应聘的方向学习,看到了腾讯的一个方向,支持java ,c/c++,go;但是由于java太卷了,最近裁员也多,于是我决定学习go,毕竟go被一些人称做为未来编程
学习基础语法,先不配置编译器,采用菜鸟在线编译器
Go 语言结构
Go 语言的基础组成有以下几个部分:
- 包声明
- 引入包
- 函数
- 变量
- 语句 & 表达式
- 注释
package main
import "fmt"
func main() {
/* 这是我的第一个简单的程序 */
fmt.Println("Hello, World!")
}
是的就和java理解差不多,打包,导包。
Go 语言基础语法
和java相似,不多说,对应的菜鸟教程
Go 语言数据类型
Go 语言变量
这个好生总结一下:
声明方法:
1.var identifier (type)
2.var identifier1, identifier2 (type)
()里为可选,但去除类型后,必须给变量赋值,像python
3. :=初始化
例如:
1.
var a string
var a = "asd"/*必须赋值*/
var a,b string
var a,b = "asd","fgh"
a := "asd" /*和var a = "asd"一样*/
注意:
- go语句后没有分号,一行一个语句
- 变量声明了以后不能重复声明
- 变量声明后必须使用,否则会报错
- {或(不能独占一行,所以格式和java的格式差不多,但java独占一行不会报错
空白标识符
空白标识符 _ 也被用于抛弃值,如值 5 在:_, b = 5, 7 中被抛弃。
_ 实际上是一个只写变量,你不能得到它的值。这样做是因为 Go 语言中你必须使用所有被声明的变量,但有时你并不需要使用从一个函数得到的所有返回值。
就是占位符的意思嘛
Go 语言常量
格式:const identifier (type) = value
和变量定义相似可以多值定义:const a,b = “a”,“b”
除此之外,常量还可以作为枚举
枚举,就是定义起始值,序号自增
如果在c语言中只需要指定第一个值就行了,但go不行
本来希望输出2
这就说明如果枚举中的变量不赋值,系统会给他一个和上一个变量一样的值
那么怎样才能达到自增呢?其实枚举自增的不是变量本身的值,而是一个iota的特殊常量
这样就对了
来个例子加深理解:
你可能疑惑,为什么c d自增了,不应该和上一个一样吗,注意我上面加粗的,是和变量一样喔,上面没有变量,就只能是特殊常量了,就自增,如果有则一样
Go 语言运算符
和其他语言一样
菜鸟教程