iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >Go语言中的基础数据类型如何使用
  • 496
分享到

Go语言中的基础数据类型如何使用

2023-07-05 22:07:29 496人浏览 安东尼
摘要

这篇文章主要介绍了Go语言中的基础数据类型如何使用的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Go语言中的基础数据类型如何使用文章都会有所收获,下面我们一起来看看吧。基础数据类型整型在Go中整型数据类型主要分

这篇文章主要介绍了Go语言中的基础数据类型如何使用的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Go语言中的基础数据类型如何使用文章都会有所收获,下面我们一起来看看吧。

基础数据类型

整型

Go中整型数据类型主要分为

  • 有符号整型

  • 无符号整型

  • 特殊整型

有符号整型

  • int8: 8位(-128 ~ 127)

  • int16: 16位(-32768 ~ 32767)

  • int32: 32位(-2147483648 ~ 214748347)

  • int64: 64位(-9223372036854775808 ~ 9223372036854775807)

var a int8var b int16var c int32var d int64

无符号整型

  • uint8: 8位(0 ~ 255)

  • uint16: 16位(0 ~ 65535)

  • uint32: 32位(0 ~ 4294967295)

  • uint64: 64位(0 ~ 18446744073709551615)

var a uint8var b uint16var c uint32var d uint64

特殊整型

  • uint: 在32位操作系统上就是unit32,64位操作系统上就是uint64

  • int: 在32位操作系统上就是int32,64位操作系统上就是int64

  • unitptr: 无符号整型,用于存放一个指针

var a unitvar b intvar c unitptr

Go中也可以使用数字字面量语法

  • 0b开头的代表二进制

  • 0o开头的代表八进制

  • 0x开头的代表十六进制

浮点型

Go中支持的浮点型有两种

  • float32

  • float64

var a float32 = 3.14var b float64 = 3.1415

复数

Go中支持的复数有两种

  • complex64

  • complex128

var a complex64a = 1 + 2ivar b complex128b = 2 + 3i

复数拥有实部和虚部,complex64的实部和虚部为32位,而complex128的实部和虚部为64位

布尔值

Go中布尔值通过bool进行类型声明,布尔值的数据只能时truefalse,并且布尔类型变量的默认值为falseGo中不允许将整型强制转换为布尔型,而且布尔型无法参加数值运算,也无法与其他类型进行转换

var a bool = truevar b bool = false

字符串

Go中字符串是以双引号包裹的内容

var a string = "water"var b string = "你好"

字符串的转义符

  • \r:回车符

  • \n:换行符

  • \t:制表符

  • \':单引号

  • \":双引号

  • \\:反斜杠

多行字符串

Go中要定义一个多行字符串时,需要使用反引号包裹

var a string = `这是什么`

反引号间换行将被作为字符串中的换行,但是所有的转义字符均无效,文本将会原样输出

常用的操作字符串的手段

name := "water"zhName := "中国"join := []string{"water", "iio"}
  • len(string) 获取字符长度

// lenfmt.Println(len(name)) => 5fmt.Println(len(zhName)) => 6 // 一个汉字占用3个字符所以是字符的长度
  • utf8.RuneCountInString 获取字符串长度

// utf8.RuneCountInStringfmt.Println(utf8.RuneCountInString(name)) => 5fmt.Println(utf8.RuneCountInString(zhName)) => 2
  • +/fmt.Sprintf 连接字符串

// +/fmt.Sprintffmt.Println(zhName + name) => "中国water"fmt.Println(fmt.Sprintf("我是%s的%s", zhName, name)) => "我是中国的water"
  • strings.Split 分割字符串

fmt.Println(strings.Split(name, "")) => [w a t e r]
  • strings.Contains 判断是否包含子字符串

fmt.Println(strings.Contains(name, "w")) => true
  • strings.HasPrefix 判断是否以子字符串开头

fmt.Println(strings.HasPrefix(name, "w")) => true
  • strings.HasSuffix 判断是否以子字符串结尾

fmt.Println(strings.HasSuffix(name, "r")) => true
  • strings.Index() 判断子字符串或字符在父字符串中出现的位置(索引

fmt.Println(strings.Index(name, "r")) => 4
  • strings.LastIndex() 返回子字符串在字符串中最后出现位置的索引( 子字符串的第一个字符的索引)

fmt.Println(strings.LastIndex("waterte", "te")) => 5
  • strings.Join(a[]string,sep string) 把切片连接成字符串

fmt.Println(strings.Join(join, ",")) => "water,iio"

byte和rune类型

Go中组成字符串的叫做字符,每个字符串都有字符组成,一般可以通过遍历或者单个获取字符串元素获得字符。字符用单引号包裹

var a = '我'var b = 't'

Go中字符有两种

  • uint8类型也叫byte型,代表一个ASCII码字符

  • rune类型,代表一个UTF-8字符

当需要处理中文、日文或者其他复合字符时,则需要用到rune类型。rune类型实际是一个int32

Go 使用了特殊的 rune 类型来处理 Unicode,让基于 Unicode 的文本处理更为方便,也可以使用 byte 型进行默认字符串处理,性能和扩展性都有照顾。

因为UTF8编码下一个中文汉字由3~4个字节组成,所以我们不能简单的按照字节去遍历一个包含中文的字符串,否则就会出现上面输出中第一行的结果。

字符串底层是一个byte数组,所以可以和[]byte类型相互转换。字符串是不能修改的 字符串是由byte字节组成,所以字符串的长度是byte字节的长度。 rune类型用来表示utf8字符,一个rune字符由一个或多个byte组成。

修改字符串

要修改字符串,需要先将其转换成[]rune[]byte,完成后再转换为string。无论哪种转换,都会重新分配内存,并复制字节数组。

func setString() {   name := "water"   // 强制类型转换   byteName := []byte(name)   byteName[0] = 'm'   fmt.Println(string(byteName))   zhName := "大熊猫"   runeZhName := []rune(zhName)   runeZhName[0] = '小'   fmt.Println(string(runeZhName))}=>  mater   小熊猫

类型转换

Go语言中只有强制类型转换,没有隐式类型转换。该语法只能在两个类型之间支持相互转换的时候使用。

强制类型转换的基本语法如下:

T(表达式) fmt.Println(string(runeZhName))

关于“Go语言中的基础数据类型如何使用”这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对“Go语言中的基础数据类型如何使用”知识都有一定的了解,大家如果还想学习更多知识,欢迎关注编程网精选频道。

--结束END--

本文标题: Go语言中的基础数据类型如何使用

本文链接: https://www.lsjlt.com/news/355596.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • mysql毫秒时间戳转时间怎么实现
    在MySQL中,可以使用FROM_UNIXTIME()函数将毫秒时间戳转换为时间。需要注意的是,FROM_UNIXTIME()函数接...
    99+
    2024-05-14
    mysql
  • mysql创建序列的方法是什么
    MySQL并没有内置的序列功能,但可以通过创建一个表来模拟序列的功能。以下是一种创建序列的方法: 创建一个表来存储序列的当前值: ...
    99+
    2024-05-14
    mysql
  • mysql怎么修改自增列的初始值
    要修改MySQL表中自增列的初始值,可以使用ALTER TABLE语句。以下是一个示例: ALTER TABLE table_nam...
    99+
    2024-05-14
    mysql
  • MySQL如何设置自增初始值
    在MySQL中,可以使用AUTO_INCREMENT关键字来设置自增初始值。可以使用以下语法来设置自增初始值: ALTER TABL...
    99+
    2024-05-14
    mysql
  • oracle怎么设置主键自增
    在Oracle数据库中,可以通过序列(Sequence)和触发器(Trigger)来实现设置主键自增的功能。 首先,需要创建一个序列...
    99+
    2024-05-14
    oracle
  • pgsql删除索引的方法是什么
    要删除一个索引,可以使用以下SQL语句: DROP INDEX index_name; 其中index_name是要删除的索引的名...
    99+
    2024-05-14
    pgsql
  • db2表空间状态0x4000怎么解决
    表空间状态0x4000表示该表空间为“冻结”状态,这可能是由于一些异常情况导致的。要解决这个问题,可以尝试以下几种方法: ...
    99+
    2024-05-14
    db2
  • mysql大文本字段优化的方法是什么
    在MySQL中,大文本字段(如TEXT、BLOB类型)的优化方法有以下几种: 使用合适的数据类型:根据实际需求选择合适的数据类型...
    99+
    2024-05-14
    mysql
  • oracle更改字符集的方法是什么
    要更改Oracle数据库的字符集,可以通过以下步骤来实现: 确保在更改字符集之前备份数据库,以防发生意外情况。 确定当前数据...
    99+
    2024-05-14
    oracle
  • 怎么更改oracle数据库字符集
    要更改Oracle数据库的字符集,可以按照以下步骤操作: 确保备份数据:在进行字符集更改之前,务必备份数据库以防止数据丢失。 ...
    99+
    2024-05-14
    oracle
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作