Go基础编程:数据类型

本文介绍了Go语言中的基础数据类型,包括布尔、整型、浮点型、复数、字符串、字符、错误类型及复合类型如指针、数组、切片、字典、通道、结构体和接口。文章详细讲解了各类型的操作,如整型的类型表示、数值运算和比较,浮点数的表示和比较,字符串的创建、操作和遍历,以及数组、切片和字典的使用方法。
摘要由CSDN通过智能技术生成

 原文链接

http://oldchen.iwulai.com/index.php/2019/01/10/go%E5%9F%BA%E7%A1%80%E7%BC%96%E7%A8%8B%EF%BC%9A%E6%95%B0%E6%8D%AE%E7%B1%BB%E5%9E%8B/

Go语言内置以下这些基础类型: 

  1.  布尔类型:bool。
  2.  整型:int8、byte、int16、int、uint、uintptr等。
  3.  浮点类型:float32、float64。
  4.  复数类型:complex64、complex128。
  5.  字符串:string。
  6.  字符类型:rune。
  7.  错误类型:error。

此外,Go语言也支持以下这些复合类型:

  •  指针(pointer)
  •  数组(array)
  •  切片(slice)
  •  字典(map)
  •  通道(chan)
  •  结构体(struct)
  •  接口(interface)

1.布尔类型

Go语言中的布尔类型与其他语言基本一致,关键字也为bool,可赋值为预定义的true和false示例代码如下:

var v1 bool
v1 = true
v2 := (1 == 2) // v2也会被推导为bool类型

布尔类型不能接受其他类型的赋值,不支持自动或强制的类型转换。以下的示例是一些错误的用法,会导致编译错误:

var b bool
b = 1 // 编译错误
b = bool(1) // 编译错误

以下的用法才是正确的:

var b bool
b = (1!=0) // 编译正确 
fmt.Println("Result:", b) // 打印结果为Result: true 

2.整型

整型是所有编程语言里最基础的数据类型。Go语言支持表2-1所示的这些整型类型。

2.1. 类型表示

需要注意的是,int和int32在Go语言里被认为是两种不同的类型,编译器也不会帮你自动做类型转换,比如以下的例子会有编译错误:

var value2 int32
value1 := 64    // value1将会被自动推导为int类型
value2 = value1 // 编译错误

编译错误类似于:

cannot use value1 (type int) as type int32 in assignment。

使用强制类型转换可以解决这个编译错误:

value2 = int32(value1) // 编译通过

当然,开发者在做强制类型转换时,需要注意数据长度被截短而发生的数据精度损失(比如将浮点数强制转为整数)和值溢出(值超过转换的目标类型的值范围时)问题。

2.2. 数值运算

Go语言支持下面的常规整数运算:+、-、*、/和%。加减乘除就不详细解释了,需要说下的是,% 和在C语言中一样是求余运算,比如:

5 % 3 // 结果为:2 

2.3. 比较运算

Go语言支持以下的几种比较运算符:>、<、==、>=、<=和!=。这一点与大多数其他语言相同,与C语言完全一致。
下面为条件判断语句的例子:

i, j := 1, 2 
if i == j { 
  fmt.Println("i and j are equal.") 
} 

两个不同类型的整型数不能直接比较,比如int8类型的数和int类型的数不能直接比较,但各种类型的整型变量都可以直接与字面常量(literal)进行比较,比如:

package main
import "fmt"
func main() {
var i int32
var j int64
i, j = 1, 2 

if i == 1 || j == 2 { // 编译通过
 fmt.Println("i and j are equal.") 
} 
if i == j { // 编译错误
 fmt.Println("i and j are equal.") 
} 
}

3.浮点型

浮点型用于表示包含小数点的数据,比如1.234就是一个浮点型数据。Go语言中的浮点类型采用IEEE-754标准的表达方式。

3.1. 浮点数表示

Go语言定义了两个类型float32和float64,其中float32等价于C语言的float类型,
float64等价于

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值