一 Hello World 分析
package main//包名
import "fmt"
func main() {
fmt.Println("Hello, World!")
}
- package main 定义了包名。你必须在源文件中的第一行指明这个文件属于哪个包,现在就是main包。同时package main表示一个可独立执行的程序,每个 Go 应用程序都必须包含一个名为 main 的包。
- import “fmt” 告诉 Go 编译器这个程序需要使用的包,fmt 包用于输入输出。同时导入包就必须使用。
- func main() 是程序的入口。(如果有 init()
函数则会先执行该函数),同时go语言的左花括号不能独占一行,也没有分号 - fmt.Println(“Hello, World!”) 可以将字符串输出到控制台,并在最后自动增加换行字符
\n,它也支持C的格式化输出Printf.
二 变量类型
类型 | 默认值 | 长度 |
---|---|---|
bool | false | 1 |
byte(uint8 的别名) | 0 | 1 |
rune( int32,代表一个 Unicode 码 ) | 0 | 1 |
uint、uint | 0 | 4或8 |
uint8、uint8 | 0 | 1 |
uint16、uint16 | 0 | 2 |
uint32、uint32 | 0 | 4 |
uint64、uint64 | 0 | 8 |
float32 | 0.0 | 4 |
float64 | 0.0 | 8 |
complex64(复数) | 8 | |
complex128 | 16 | |
uintptr(指针) | nil | 4或8 |
string(字符串) | “” |
三 定义变量
go的定义与c++不同,声明变量的一般形式是使用 var 关键字
var 变量名 变量类型
var a int
同时支持自动推导类型,但是定义变量时,必须同时显式初始化
a := 8
小例子
package main
import "fmt"//导入包必须使用,否则编译报错
func main() {//g语言中的 ‘{’ 不能独占一行
var a int;//定义了变量必须使用,否则编译报错
fmt.Printf("a= %d\n",a)
b := 5
fmt.Printf("b= %d\n",b)
var p *int
if(p == nil){ //空是nil
p = &a // p指向a
fmt.Printf("p= %d\n",*p)
}
}
结果