首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

【GO学习】基本数据类型

今天来学习Go语言中的基本数据类型,还是相当丰富,除了基本的整型、浮点型、布尔型、字符串、数组,还有切片、结构体、函数、map、通道(channel)等。其实Go语言的基本类型和其他语言大同小异,下面我们来认识一下吧~

基本数据类型

整型

整型分类两大类:

•有符号 -int8、int16、int32、int64•无符号 -uint8、uint16、uint32、uint64

详细说明

特殊整型

特殊整型

说明:它们的类型会根据操作系统的不同而不同,因此如果要使用它们需要考虑在不同平台之间的差异性,建议慎用。

八进制、十六进制

GO语言中不可以直接定义二进制数,关于八进制、十六进制小示例如下:

package main

import "fmt"

func main() { // 十进制 var i1 = 101 fmt.Printf("%d\n", i1) // 十进制 101 fmt.Printf("%b\n", i1) // 十进制转二进制 1100101 fmt.Printf("%o\n", i1) // 十进制转八进制 145 fmt.Printf("%x\n", i1) // 十进制转十六进制 65

// 八进制,以0开头 i2 := 066 fmt.Printf("%d\n", i2) // 十进制 54

// 十六进制,以0x开头 i3 := 0x111 fmt.Printf("%d\n", i3) // 十进制 273}

浮点型

GO语言中的浮点型分为两类:float32和float64。

•float32- 最大值为3.4e38,可以使用常量math.MaxFloat32来定义。•float64- 最大值为1.8e308,可以使用常量math.MaxFloat64来定义。

打印浮点型可以使用%f,小示例如下:

package main

import ( "fmt" "math")

func main() { var a1 = 123.11726366 fmt.Printf("%T\n", a1) // float64 fmt.Printf("%f\n", a1) // 123.117264 会有一定的精度损失

a2 := float32(13.222) // 指定具体类型,不指定时默认为float64 fmt.Printf("%T\n", a2) // float32 fmt.Printf("%f\n", a2) // 13.222000

// 最大范围 fmt.Printf("%f\n", math.MaxFloat32) fmt.Printf("%f\n", math.MaxFloat64)}

布尔型

GO语言以bool场景布尔型数据,布尔型只有true和false两个值。

注意:

•布尔型的默认值为false•不允许将整型强制转为布尔型(和PHP不一样)•布尔型也不能参与数值运算

字符串

GO语言中的字符串与其它语言基本一致,内部实现使用utf-8编码,字符串的值为双引号的内容,如下:

a1 := "hello"a2 := "你好"

// 多行字符串,使用“反引号”,指原样输出a3 := `第一行第二行`

注意:

•字符串必须使用双引号包裹,单引号包裹的是字符!!!

字符串转义符

GO语言的字符串常见转义符包含回车、换行、单双引号、制表符等,具体如下:

字符串转义符

字符串常用操作

字符串常用操作

类型转换

GO语言中只有强制类型转换,不存在隐式转换这么一说,语法格式如下:

T(表达式)int(3.14)

拓展小知识

fmt常用点位符

我们打印数据时经常会用到fmt.Printf(…)函数及相应的点位符,那么它常用的都有哪些呢?

package main

import "fmt"

func main() { a1 := 100 fmt.Printf("%T\n", a1) // 数据类型 fmt.Printf("%v\n", a1) // 数据值 100 fmt.Printf("%b\n", a1) // 二进制 fmt.Printf("%d\n", a1) // 十进制 fmt.Printf("%o\n", a1) // 八进制 fmt.Printf("%x\n", a1) // 十六进制

a2 := "hello" fmt.Printf("%s\n", a2) // 字符串值 hello fmt.Printf("%#v\n", a2) // 带类型的数据值 "hello" fmt.Printf("%c\n", 'B') // 字符 B}

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20200618A0R6N300?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券