Go的hello word程序
package main
import (
"fmt"
)
func main() {
fmt.Println("Hello, world!")
}
每一个文件都要归属一个package,go语言中使用包的概念去管理文件,源码都必须要属于某一个包,package main是项目的起始,可以类比C语言中的main函数,程序的入口。
import导入fmt包,fmt里包含了打印,输入等等,可以类别作C语言中的stdio.h头文件,打印通过调用fmt里的Print和Println打印,加了ln表示输入结果后换行。
Go语言中对格式有一定的要求:
1.例如{},编写的时候要{紧跟之前的位置而不是另外换行
2.每一行的结束不用加;作为结束,因为编译的时候会自动加上;,当然加上也没有问题,但是从简洁的角度来说,还是不要加;
3.代码中定义了却没使用的变量或者import的包,编译会直接报错
变量的定义使用
package main
import (
"fmt"
)
func main() {
var a int
a=1
fmt.Println("a = ", a)
var b int = 0
fmt.Println("b = ", b)
var c int
fmt.Println("c = ", c)
num := 0
fmt.Println("num = ", num)
}
变量的定义:变量名+变量类型,这里跟C语言相反
如果变量定义时为初始化赋值,那么就需要加上var 声明。
变量可以直接赋值,不加变量类型,如num:=0,编译器会通过判断变量初始化的内容自动添加变量类型。
定义了int型的变量c未初始化,后面没有赋值操作,打印出来的结果是0,因为编译器自动将你定义的int类型的变量初始化为0,但是不加var,编译就会报错。
go语言中常用的数据类型有
值类型:
1.bool
2.int(32 or 64), int8, int16, int32, int64
3.uint(32 or 64), uint8(byte), uint16, uint32, uint64
4.float32, float64
5.string
6.complex64, complex128
7.array -- 固定长度的数组
引用类型:
1. slice -- 序列数组(最常用)
2. map -- 映射
3. chan -- 管道
另外如果使用多行字符串,用`包含内容
例如
String = `as
Ads
Asd
`
Go语言中只有强制类型转换,没有隐式类型转换。该语法只能在两个类型之间支持相互转换的时候使用。
func main() {
var a int = 10
fmt.Println(a)
var b float32
b = float32(a)
fmt.Printf("%f\n", b)
}
例如将int转换为float32类型,输出结果:
10
10.000000