说明:
长度是指占用的内存资源
零值是指默认值
1.1布尔类型
var b1 bool = true
b2 := (1==1) //b2会被自动推导为bool类型
//错误示例
var b bool
b = 1 //编译报错
b = bool(1) //编译报错
1.2整型
var i int = 1
j := 2 //自动推导为2
1.3浮点型
var i float32 = 3.14 //go语言中没有float类型
j := 33.0 //如果不加小数点,会被自动推导为int,
//加小数点,自动推导float64(为了确保计算精度)
1.4字符类型
在go语言中,支持两个字符类型
一个是:byte(uint8的别名),代表utf-8字符串的单个字节的值
另一个是:rune,代表单个 unicode字符
package main
import "fmt"
func main() {
var ch1, ch2, ch3 byte
ch1 = 'a' //字符赋值
ch2 = 97 //字符的ascii码赋值,也是a
ch3 = '\n' //转义字符(换行符)
fmt.Printf("ch1 = %c, ch2 = %c, %c", ch1, ch2, ch3)
}
运行结果:
1.5字符串
package main
import "fmt"
func main(){
var str = "This is string"
var ch = str[0] //go也可以进行类似于python的切片
fmt.Println(str)
fmt.Println(string(ch)) //如不进行强制转换,输出的值为84('T'的ascii码)
}
运行结果:
1.6复数类型
复试实际上是由两个实数(在计算机中用浮点数)构成,一个是实部(real),一个是虚部(imag)
package main
import "fmt"
func main(){
var c1 complex64 //由两个float32构成的复数形式
c1 = 3.2 + 5.7i
c2 := 5.6 + 79i //为了确保精度,自动推导为complex128
c3 := complex(5.6, 79) //结果同c2
fmt.Println(c1, c2, c3)
//内置函数real()可以获得该复数的实部
//内置函数imag()可以获得该复数的虚部
fmt.Println(real(c1),imag(c1))
}
运行结果: