数据类型:基本数据类型和复合数据类型
基本数据类型:整型、浮点型、布尔型、字符串
复合数据类型:数组、切片、结构体、函数、map、通道(channel)、接口
整型:
package main
import "fmt"
import "unsafe"
func main(){//1.定义int类型 默认int64var num1 int = 10fmt.Printf("num=%v 类型:%T",num1,num1)//2.int8的范围演示var num2 int8 = 100//var num2 int8 = 128 //超出范围//unsafe.Sizeof 查看不同长度的整型 在内存里面的存储空间var num3 int8 =66fmt.Printf("num=%v 类型:%T",num3,num3)fmt.Printf(unsafe.Sizeof(num3)) // 1 一个字节 8位1字节//3.uint8的范围var num4 = 255 //var num4 = -2 //错误////int 不同长度的直接转换var a1 int32 = 10var a2 int64 = 20fmt.Println(int64(a1)+a2)fmt.Println(a1+int32(a2))//高位转移低维可能会溢出,导致错误//6.数字字面量语法 便于开发者以二进制,八进制,十六进制浮点数的格式定义数v1 := 0b00101101 //自动识别为二进制00101101=101101 也就是十进制的45v2 := 0o377 //代表八进制//%d 代表10进制输出,%b代表2进制,%o代表8进制 %x代表16进制 %v代表原样输出 v3 := 1fmt.Printf("num=%v 类型:%T",v3,v3) //9 intfmt.Printf("num=%d 类型:%T",v3,v3) //9fmt.Printf("num=%b 类型:%T",v3,v3) //1001fmt.Printf("num=%o 类型:%T",v3,v3) //11fmt.Printf("num=%x 类型:%T",v3,v3) //9
}
数字字面量语法是一种便于开发者以不同进制格式定义数的语法。这允许开发者以二进制、八进制、十进制和十六进制的形式来表示数字。
以下是各种进制数字字面量的示例:
- 二进制:以0b或0B开头,后面跟着一串由0和1组成的数字序列。例如:0b101010 表示42。
- 八进制:以o开头,后面跟着一串由0到7的数字组成的序列。例如:042 表示34。
- 十进制:普通的整数表示。例如:123 表示123。
- 十六进制:以0x或0X开头,后面跟着一串由0到9和A到F(或a到f)的数字和字母组成的序列。例如:0x1A 表示26。
除了整数,浮点数也可以使用数字字面量语法表示。浮点数可以使用十进制或科学计数法表示。例如:3.14 表示圆周率π,而2.5e2 表示250。
数字字面量语法提供了一种方便的方式来定义不同进制和浮点数的数字。这在编程中经常用于表示特定的数值或进行数值转换。
Go语言的基本数据类型包括以下几种:
-
bool:布尔类型,取值为true或false。
-
整数类型:包括int和uint,分别表示有符号整数和无符号整数。根据不同的位数,还包括int8、int16、int32、int64和uint8、uint16、uint32、uint64这些具体的整数类型。
-
浮点型:包括float32和float64,分别表示32位和64位的浮点数。
-
字符串类型:用于表示文本字符串,由一串字符组成。
-
字符类型:用于表示单个Unicode字符。
-
数组类型:用于存储固定数量的相同类型的元素。
-
切片类型:类似于数组,但长度可变。
-
结构体类型:用于自定义复杂的数据结构,可以包含多个不同类型的字段。
-
指针类型:用于存储变量的内存地址。
-
函数类型:表示函数的类型。
-
接口类型:用于定义一组方法的集合。
-
映射类型:用于存储键值对的集合。
-
通道类型:用于在多个goroutine之间进行通信。
这些基本数据类型在Go语言中都有对应的关键字和语法来表示和使用。通过组合和使用这些基本数据类型,开发者可以构建出更复杂的数据结构和逻辑。Go语言的基本数据类型包括以下几种:
-
bool:布尔类型,取值为true或false。
-
整数类型:包括int和uint,分别表示有符号整数和无符号整数。根据不同的位数,还包括int8、int16、int32、int64和uint8、uint16、uint32、uint64这些具体的整数类型。
-
浮点型:包括float32和float64,分别表示32位和64位的浮点数。
-
字符串类型:用于表示文本字符串,由一串字符组成。
-
字符类型:用于表示单个Unicode字符。
-
数组类型:用于存储固定数量的相同类型的元素。
-
切片类型:类似于数组,但长度可变。
-
结构体类型:用于自定义复杂的数据结构,可以包含多个不同类型的字段。
-
指针类型:用于存储变量的内存地址。
-
函数类型:表示函数的类型。
-
接口类型:用于定义一组方法的集合。
-
映射类型:用于存储键值对的集合。
-
通道类型:用于在多个goroutine之间进行通信。
这些基本数据类型在Go语言中都有对应的关键字和语法来表示和使用。通过组合和使用这些基本数据类型,开发者可以构建出更复杂的数据结构和逻辑。
Go语言是谷歌公司开发的一种编程语言。Go语言的由来可以追溯到2007年,当时Google的工程师Robert Griesemer、Rob Pike和Ken Thompson开始着手开发一种新的编程语言,目标是创造一种更简单、更高效、更安全的编程语言,以满足Google内部大规模软件开发的需求。
他们认为现有的编程语言在处理并发程序和多核计算方面存在一些问题,因此决定开发一种更适合并发编程的语言。这个项目最初被称为“20%项目”,因为参与者可以在工作时间的20%内进行开发。
在开发过程中,他们吸取了其他编程语言的优点,如C、Pascal、Algol等,并且对Go语言进行了一些创新的设计,以提高开发效率和代码的可读性。
2009年,Go语言的第一个固定版本发布,正式对外开放。随后,Go语言逐渐获得了广泛的关注和使用,得到了开发者的认可。
Go语言的目标是简洁、高效和可靠,其特点包括:静态类型、垃圾回收、编译型、并发编程支持等。Go语言在Google内部得到了广泛应用,并且在全球范围内被广泛采用,成为一种流行的编程语言。Go语言是谷歌公司开发的一种编程语言。Go语言的由来可以追溯到2007年,当时Google的工程师Robert Griesemer、Rob Pike和Ken Thompson开始着手开发一种新的编程语言,目标是创造一种更简单、更高效、更安全的编程语言,以满足Google内部大规模软件开发的需求。
他们认为现有的编程语言在处理并发程序和多核计算方面存在一些问题,因此决定开发一种更适合并发编程的语言。这个项目最初被称为“20%项目”,因为参与者可以在工作时间的20%内进行开发。
在开发过程中,他们吸取了其他编程语言的优点,如C、Pascal、Algol等,并且对Go语言进行了一些创新的设计,以提高开发效率和代码的可读性。
2009年,Go语言的第一个固定版本发布,正式对外开放。随后,Go语言逐渐获得了广泛的关注和使用,得到了开发者的认可。
Go语言的目标是简洁、高效和可靠,其特点包括:静态类型、垃圾回收、编译型、并发编程支持等。Go语言在Google内部得到了广泛应用,并且在全球范围内被广泛采用,成为一种流行的编程语言。