Go语言入门-类型

Go语言入门-类型

基本类型

基础数据类型 类型、长度、默认值、说明介绍

类型 长度 (单位Byte) 默认值 说明
bool 1 false
byte 1 0 同uint8
int 4/8 0 默认的整数类型,具体位数取决于平台,32bit的OS长度为4,64位OS长度为8
uint 4/8 0 无符号整数,具体位数取决于平台,32bit的OS长度为4,64位OS长度为8
int8 1 0 -128~127
uint8 1 0 0~255
int16 2 0 -32768~32767
uint16 2 0 0~65535
int32 4 0 -2147483648~2147483647
uint32 4 0 0~4294967295
int64 8 0 -9223372036854775808~9223372036854775807
uint64 8 0 0~18446744073709551615
float32 4 0.0 1.17549e-038~3.40282e+038
float64 8 0.0 2.22507e-308~1.79769e+308
complex64 8
complex128 16
rune 4 0 int32的别名 存放Unicode编码
uintptr 4/8 0 存放指针的类型 uint的别名
string “” 字符串
array 数组
struct 结构体
functionnil nil 函数
interface nil 接口
map nil 字典,引用类型
slice nil 切片,引用类型
channel nil 通道,引用类型

字面值常量介绍

整型字面值常量
package main

import "fmt"

func main() {
   
	//var dec int = 1
	//var oct int = 02
	//var hex int = 0x03
	//var bin int = 0x0101
	var (
		//十进制
		dec int = 127
		//八进制数值需要加前缀0
		oct int = 0177
		//十六进制数值需要加前缀0x
		hex int = 0xDF
		//二进制数值常量需要加前缀0b
		bin int = 0b10000011
	)
	fmt.Printf("dec: [十进制[%d] 八进制[%o] 十六进制[%x] 二进制[%b]\n", dec, dec, dec, dec)
	fmt.Printf("oct: [十进制[%d] 八进制[%o] 十六进制[%x] 二进制[%b]\n", oct, oct, oct, oct)
	fmt.Printf("hex: [十进制[%d] 八进制[%o] 十六进制[%x] 二进制[%b]\n", hex, hex, hex, hex)
	fmt.Printf("bin: [十进制[%d] 八进制[%o] 十六进制[%x] 二进制[%b]\n", bin, bin, bin, bin)
}
/**
output:
dec: [十进制[127] 八进制[177] 十六进制[7f] 二进制[1111111]
oct: [十进制[127] 八进制[177] 十六进制[7f] 二进制[1111111]
hex: [十进制[223] 八进制[337] 十六进制[df] 二进制[11011111]
bin: [十进制[131] 八进制[203] 十六进制[83] 二进制[10000011]
 */

我们可以通过字面值常量来定义数字。例如在刚才的例子中,可以使用0前缀标识八进制数值如: oct int = 0177、使用0x前缀标识十六进制数值如:hex int = 0xDF, 使用0b前缀标识二进制数值,如bin int = 0b10000011。
同时fmt 包里的print函数族中Printf支持格式化打印。
其中:
%d 表示十进制占位符
%o表示八进制占位符
%x表示十六进制占位符
%b表示二进制占位符

浮点型字面值常量

func main() {
   
	var f32a float32 = 123.334434e-3
	var f32b float32 = -123.3344e-2
	f32a: [十进制[  0.123334] 十六进制[0x1.f92d88p-04] 二进制[0000000000000000000016553668p-27] 不能直接打印二进制和十六进制
	fmt.Printf("f32a: [十进制[%10f] 十六进制[%08x] 二进制[%032b]\n", f32a, f32a, f32a)
	//f32a: [十进制[  0.123334] 十六进制[3dfc96c4] 二进制[00111101111111001001011011000100]
	fmt.Printf("f32a: [十进制[%10f] 十六进制[%08x] 二进制[%032b]\n", f32a, math.Float32bits(f32a), math.Float32bits(f32a))
	//f32b: [十进制[ -1.233344] 十六进制[bf9dde37] 二进制[10111111100111011101111000110111]
	fmt.Printf("f32b: [十进制[%10f] 十六进制[%08x] 二进制[%032b]\n", f32b, math.Float32bits(f32b), math.Float32bits(f32b))

	var f64c float64 = 123.334434e-3
	fmt.Printf("f64c: [十进制[%10f] 十六进制[%016x] 二进制[%064b]\n", f64c, math.Float64bits(f64c), math.Float64bits(f64c))
}
/**
output:
f32a: [十进制[  0.123334] 十六进制[0x1.f92d88p-04] 二进制[0000000000000000000016553668p-27]
f32a: [十进制[  0.123334] 十六进制[3dfc96c4] 二进制[00111101111111001001011011000100]
f32b: [十进制[ -1.233344] 十六进制[bf9dde37] 二进制[10111111100111011101111000110111]
f64c: [十进制[  0.123334] 十六进制[3fbf92d870802bf1] 二进制[0011111110111111100100101101100001110000100000000010101111110001]
 */

浮点数的字面值常量表示方式有两种,第一种是普通10进制+小数点标识如:123.01,第二种是科学计数法标识,如1.2301e+3/123010e-3。
同时fmt包中也支持对浮点数的格式打印,其中
使用%f表示浮点数占用符
如:

	f32a: [
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Golang(又称为Go)是Google公司开发出的一种静态强类型、编译型、并发型,并具有垃圾回收功能的编程语言。Go语言具有以下特点:简洁、高效、安全、并发、跨平台等。在学习Golang入门阶段,你可以了解以下几个方面: 1. Golang的特点:Go语言具有简洁、高效、安全、并发、跨平台等特点,这些特点使得Golang成为一种非常流行的编程语言。 2. Golang的变量作用域:在Golang中,变量的作用域可以分为全局作用域和局部作用域。 3. Golang的执行流程的两种方式:Golang的执行流程可以通过顺序执行和条件执行两种方式来实现。 4. 在Linux上安装Golang语言开发包:要开始学习Golang,你需要在Linux上安装Golang语言开发包。你可以在Golang官方网站上下载适合你的操作系统和架构的Golang安装包,并按照官方文档进行安装。 5. Golang变量的基本使用:在Golang中,你可以使用var关键字声明变量,并使用:=运算符进行变量的初始化和赋值操作。 6. Golang中整数的类型:在Golang中,整数类型可以分为有符号整数和无符号整数,不同的整数类型有不同的取值范围。 7. Golang基本数据类型的默认值:在Golang中,当你声明一个变量但没有进行初始化时,它的默认值将根据其数据类型而定。 8. 基本数据类型转换为String类型:在Golang中,你可以使用strconv包提供的函数将基本数据类型转换为字符串类型

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值