前面我们已经讲了基本的 环境搭建 与测试,接下来我们一起了解一下go的基本语法;
这部分的内容基本每门编程语言都差不多,不外乎一些关键字,逻辑控制语句;因此我们可能会比较简略的介绍完这部分的内容。
学习go更多的应该了解它的一些特性,与别的语言的不同之处,有哪些优势值得我们花时间学习,这些我们会在今后的学习中一步一步的深入理解和掌握。
基本语法
Go语言中,一个工程有且只能有一个main方法,若定义多个则会报错。而main作为go的入口是从C语言中继承而来的。
package mainimport "fmt"func main() { var a bool a=false b:=1234 fmt.Println(a)}
变量的声明和初始化有两种方式
显示声明
var a bool
a=false
使用:=赋值初始化
b:=1234
上面这段代码如果运行会报一个错误
# command-line-arguments
.Grammar.go:7:5: b declared and not used
go语言中不允许未被使用的变量。
同样在import也有这样的规则,未被使用的包不要引入。
若把main后面的‘{’放在下一行显示同样会报错。
package mainimport "fmt"func main(){ #var a bool ;a=falseb:=1234fmt.Println(a)fmt.Println(b)}
错误如下:
missing function body
.Grammar.go:5:1: syntax error: unexpected semicolon or newline before {
go语言中有很多这种貌似和代码逻辑没啥关系的语法规定,这种做法是能够提高效率的,也同样能保持代码的简洁。在今后的学习中我们一点一点的了解。
数据类型
bool 布尔类型
逻辑操作:
!flag //逻辑非
flag1 || flag2 //逻辑或
flag1 && flag2 //逻辑与
整型数值类型
var a int //显式声明为int的整数类型
a=25
go中的整型还能灵活指定多种类型和范围,可以应用在不同场景,主要包括:
byte 相当于无符号的8位int型
int 默认整型,根据平台可以为32位或64位
int8 带符号的8位整型
int16 带符号的16位整型
int32 带符号的32位整型
int64 带符号的64位整型
rune 相当于无符号的32位整型
uint 无符号整型,根据平台可以为32位或64位
uint8 无符号的8位整型
uint16 无符号的16位整型
uint32 无符号的32位整型
uint64 无符号的64位整型
uintptr 存放指针的无符号整型,相当于uint
注意:数值类型赋值若超过了设定类型会报错
比如:
var int1 int8
int1 = 128
点击运行就会报如下错误:
操作方式和其它语言一样,支持 + – * / 等基本操作。大致总结如下:
^a //按位取反
a%b //取余,
a&b // 按位与
a|b // 按位或
a^b //按位异或
a>>b //a右移b位
a<<b //a左移b位
未完待续