package main
import (
"fmt"
"math"
)
var Pi float64
func init() {
Pi = 4 * math.Atan(1)
}
func main() {
DPi := Pi * Pi
fmt.Println(Pi, DPi)
}
Go语言中,除了可以再全局申明中初始化实体,也可以再init函数只能初始化,init函数是一个特殊的函数,塔会在完成初始化后自动执行,执行优先级比main函数高,并且不能手动调用init函数,每一个源文件有且只有一个init函数,初始化过程会根据包的依赖关系按照单线程执行。可以在开始执行前通过这个函数对数据进行检验与修复,保证程序执行是的状态正常。
go语言中,数据类型用于声明函数与变量,常量的常量的数据类型。数据类型这个概念主要是为了提高内存的利用效率,因为不同数据存储在内存中所需要的空间大小是不一样的,所以编程时指定数据类型,可以充分利用内存空间,数据存储体积大的类型申请内存就大。数据类型确定了程序实体在内存的存储中可以占多少空间。
bool型 true false 长度一字节
int uint 整数类型,Go语言支持无符号和带符号俩种类型,这两种类型的内存大小相等,但具体大小取决于编译器的实现。go语言也有定义了位数的整型,int8 int16 int32 =rune int64 uint16 。rune 码点是int32的别称,byte是uint8的别称。8位整型长度位1字节,16位长度位2字节,31长度位4字节,64位长度位8字节。uintpt指针
float32 float64 浮点型,浮点数型有32,64go语言没有float型,默认是64,长度是4字节,8字节。此外还有两个复数类型complex64 complex128,complex64虚部和实部是float32,complex虚部实部是float64
string 字符串。字符串就是一串固定的字符序列,go语言的字符串是有单字节连接而成,所有字节默认使用utf-8标识Unicode文本,string在go语言中是固定的
派生类型 slice map channel pointer array strct function interface error错误类型,他们不仅要申请内存还需要初始化相关属性