基本语法
package main
import "fmt"
func main() {
fmt.Println("Hello 世界!")
}
package关键字代表的是当前go文件属于哪一个包,启动文件通常是main包,启动函数是main函数,在自定义包和函数时命名应当尽量避免与之重复。
import是导入关键字,后面跟着的是被导入的包名。
func是函数声明关键字,用于声明一个函数。
fmt.Println("Hello 世界!")是一个语句,调用了fmt包下的Println函数进行控制台输出。
包
在Go中,程序是通过将包链接在一起来构建的,也可以理解为最基本的调用单位是包,而不是go文件。包其实就是一个文件夹,包内共享所有源文件的变量,常量,函数以及其他类型。包的命名风格建议都是小写字母,并且要尽量简短。
创建一个example包,包下有如下函数
package example
import "fmt"
func SayHello() {
fmt.Println("Hello")
}
在main函数中调用
package main
import "example"
func main() {
example.SayHello()
}
还可以给包起别名
package main
import e "example"
func main() {
e.SayHello()
}
批量导入时,可以使用括号()来表示
package main
import (
"fmt"
"math"
)
func main() {
fmt.Println(math.MaxInt64)
}
或者说只导入不调用,通常这么做是为了调用该包下的init函数。
package main
import (
"fmt"
_ "math" // 下划线表示匿名导入
)
func main() {
fmt.Println(1)
}
导出
导出和访问控制是通过命名来进行实现的,想要对外暴露一个函数或者一个变量,只需要将其名称首字母大写即可。
不对外暴露的话,只需将名称首字母改为小写即可,对外暴露的函数和变量可以被包外的调用者导入和访问,如果是不对外暴露的话,那么仅包内的调用者可以访问,外部将无法导入和访问。
私有
go中约定,一个包内名为internal 包为私有包,其它的包将无法访问私有包中的任何东西。
注释
Go支持单行注释和多行注释,注释与内容之间建议隔一个空格。
标识符
标识符就是一个名称,用于包命名,函数命名,变量命名等等,命名规则如下:
- 只能由字母,数字,下划线组成
- 只能以字母和下划线开头
- 严格区分大小写
- 不能与任何已存在的标识符重复,即包内唯一的存在
- 不能与Go任何内置的关键字冲突
运算符
go语言中没有选择将~作为取反运算符,而是复用了^符号,当两个数字使用^时,例如a^b,它就是异或运算符,只对一个数字使用时,例如^a,那么它就是取反运算符。
Go语言中没有自增与自减运算符,它们被降级为了语句statement,并且规定了只能位于操作数的后方,所以不用再去纠结i++和++i这样的问题。
a++ // 正确
++a // 错误
a-- // 正确
还有一点就是,它们不再具有返回值,因此a = b++这类语句的写法是错误的。
文章评论