GO语言学习——基本数据类型——整型、浮点型、复数、布尔值、fmt占位符
基本数据类型
整型
整型分为以下两个大类: 按长度分为:int8、int16、int32、int64 对应的无符号整型:uint8、uint16、uint32、uint64
其中,uint8就是我们熟知的byte型,int16对应C语言中的short型,int64对应C语言中的long型。
类型  	                   描述                   
uint8 	           无符号 8位整型 (0 到 255)
uint16	         无符号 16位整型 (0 到 65535)
uint32	       无符号 32位整型 (0 到 4294967295)
uint64	  无符号 64位整型 (0 到 18446744073709551615)
int8 	         有符号 8位整型 (-128 到 127)
int16 	       有符号 16位整型 (-32768 到 32767)
int32 	  有符号 32位整型 (-2147483648 到 2147483647)
int64 	有符号 64位整型 (-9223372036854775808 到 9223372036854775807)
特殊整型
类型   	               描述                
uint  	32位操作系统上就是uint32,64位操作系统上就是uint64
int  	 32位操作系统上就是int32,64位操作系统上就是int64
uintptr	         无符号整型,用于存放一个指针
注意: 在使用int和 uint类型时,不能假定它是32位或64位的整型,而是考虑int和uint可能在不同平台上的差异。
注意事项 获取对象的长度的内建len()函数返回的长度可以根据不同平台的字节长度进行变化。实际使用中,切片或 map 的元素数量等都可以用int来表示。在涉及到二进制传输、读写文件的结构描述时,为了保持文件的结构不会受到不同编译目标平台字节长度的影响,不要使用int和 uint。
package main
import "fmt"
// 整型
func main()  {
	var i1 = 101
	fmt.Printf("%d\n", i1)
	fmt.Printf("%b\n", i1) // 把十进制转换成二进制
	fmt.Printf("%o\n", i1) // 把十进制转换成八进制
	fmt.Printf("%x\n", i1) // 把十进制转换成十六进x
	// 八进制
	i2 := 077
	fmt.Printf("%d\n", i2)
	// 十六进制
	i3 := 0x1234567
	fmt.Printf("%d\n", i3)
	// 查看变量的类型
	fmt.Printf("%T\n", i3)
	// 声明int8类型的变量
	i4 := int8(9)  // 明确指定int8类型,否则默认int类型
	fmt.Printf("%T\n", i4)
}
浮点型
Go语言支持两种浮点型数:float32和float64。这两种浮点型数据格式遵循IEEE 754标准: float32 的浮点数的最大范围约为 3.4e38,可以使用常量定义:math.MaxFloat32。 float64 的浮点数的最大范围约为 1.8e308,可以使用一个常量定义:math.MaxFloat64。
package main
import "fmt"
// 浮点数
func main(){
	// math.MaxFloat32 // float32最大值
	f1 := 1.23456
	fmt.Printf("%T\n", f1) // 默认Go语言中的小数都是float64类型
}
E:\go\src\github.com\qiaopengjun\day01\05float>go build
E:\go\src\github.com\qiaopengjun\day01\05float>05float.exe
float64
package main
import "fmt"
// 浮点数
func main(){
	// math.MaxFloat32 // float32最大值
	f1 := 1.23456
	fmt.Printf("%T\n", f1) // 默认Go语言中的小数都是float64类型
	f2 := float32(1.23456) 
	fmt.Printf("%T\n", f2) // 显示声明float32类型
	// f1 = f2 // float32类型的值不能直接赋值给float64类型的变量
}
复数
complex64和complex128
var c1 complex64
c1 = 1 + 2i
var c2 complex128
c2 = 2 + 3i
fmt.Println(c1)
fmt.Println(c2)
复数有实部和虚部,complex64的实部和虚部为32位,complex128的实部和虚部为64位。
布尔值
Go语言中以bool类型进行声明布尔型数据,布尔型数据只有true(真)和false(假)两个值。
注意:
- 
布尔类型变量的默认值为false。 
- 
Go 语言中不允许将整型强制转换为布尔型. 
- 
布尔型无法参与数值运算,也无法与其他类型进行转换。 package main import "fmt" // 布尔类型 func main(){ 
 b1 := true
 var b2 bool // 默认是false
 fmt.Printf("%T value:%v\n", b1, b1)
 fmt.Printf("%T value:%v\n", b2, b2)
 }E:\go\src\github.com\qiaopengjun\day01\06bool>go build E:\go\src\github.com\qiaopengjun\day01\06bool>06bool.exe 
 bool value:true
 bool value:false
fmt占位符
package main
import "fmt"
// fmt占位符
func main(){
	var n = 100
	// 查看类型
	fmt.Printf("%T\n", n)
	fmt.Printf("%v\n", n)
	fmt.Printf("%b\n", n)
	fmt.Printf("%d\n", n)
	fmt.Printf("%o\n", n)
	fmt.Printf("%x\n", n)
	var s = "Hello 沙河!"
	fmt.Printf("字符串:%s\n", s)
	fmt.Printf("字符串:%v\n", s)
	fmt.Printf("字符串:%#v\n", s)
}
E:\go\src\github.com\qiaopengjun\day01\07fmt>go build
E:\go\src\github.com\qiaopengjun\day01\07fmt>07fmt.exe
int
100
1100100
100
144
64
Hello 沙河!
Hello 沙河!
E:\go\src\github.com\qiaopengjun\day01\07fmt>go build  
E:\go\src\github.com\qiaopengjun\day01\07fmt>07fmt.exe
int
100
1100100
100
144
64
字符串:Hello 中国!
字符串:Hello 中国!
字符串:"Hello 中国!"
E:\go\src\github.com\qiaopengjun\day01\07fmt>
本文来自博客园,作者:寻月隐君,转载请注明原文链接:https://www.cnblogs.com/QiaoPengjun/p/16127762.html

 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号