前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【愚公系列】2022年7月 Go教学课程 011-字符串类型

【愚公系列】2022年7月 Go教学课程 011-字符串类型

作者头像
愚公搬代码
发布2022-08-01 08:44:38
1830
发布2022-08-01 08:44:38
举报
文章被收录于专栏:历史专栏

文章目录


一、数据类型概要

go语言中有四种数据类型:基础类型,复合类型,引用类型,接口类型。

类型

名称

长度

零值

说明

bool

布尔类型

1

false

其值不为真即为假,不可以用数字代表true或false

byte

字节型

1

0

uint8别名

rune

字符类型

4

0

专用于存储unicode编码,等价于uint32

int, uint

整型

4或8

0

有符号32位或无符号64位

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(42亿)

int64

整型

8

0

-9223372036854775808到9223372036854775807

uint64

整型

8

0

0到18446744073709551615 ( 1844京)

float32

浮点型

4

0.0

小数位精确到7位

float64

浮点型

8

0.0

小数位精确到15位

complex64

复数类型

8

complex128

复数类型

16

64位实数和虚数

uintptr

整型

4或8

足以存储指针的uint32或uint64整数

strina

字符串

"”

utf-8字符串

二、字符串类型

在 Go 语言中,字符串是一个不可改变的字节序列,类型为原生数据类型,同 int 、bool、float32、float64 是一样的,字符串的值通过双引号来包裹字符。

代码语言:javascript
复制
package main

import "fmt"

func main() {
	var name string = "愚公搬代码"
	str := "愚公搬代码"
	fmt.Printf("%s\n", name)
	fmt.Printf("%T", str)
}
在这里插入图片描述
在这里插入图片描述

主要:虽然看到str只包含一个字符,但是隐藏一个字符串结束标志‘%0’。

1.计算字符串的长度

Go 语言内置的 len()函数可以获取切片、字符串、通道(channel) 等的长度。

代码语言:javascript
复制
package main

import "fmt"

func main() {
	var name string = "愚公搬代码"
	str := "愚公搬代码"
	str1 := "abcde"
	fmt.Printf("%s\n", name)
	fmt.Printf("%T\n", str)
	fmt.Println(len(name))
	fmt.Println(len(str1))
}
在这里插入图片描述
在这里插入图片描述

len()函数返回值为 int 类型,表示字符串的 ASCII 字符的个数或字节长度。

你可能会奇怪,字符串 str2 的长度居然是15,这是因为 Go 语言的字符串都以 UTF-8 格式保存,每个中文占用 3 个字节,所以 5 ✖️ 3 = 15 个字节。

如果希望按照习惯上的字符个数类计算,可以使用 UTF-8 包提供的 RuneCountInString() 来统计 Uncode 字符数量:

代码语言:javascript
复制
package main

import (
	"fmt"
	"unicode/utf8"
)

func main() {
	var name string = "愚公搬代码"
	str := "愚公搬代码"
	str1 := "abcde"
	fmt.Printf("%s\n", name)
	fmt.Printf("%T\n", str)
	fmt.Println(len(name))
	fmt.Println(len(str1))
	fmt.Println(utf8.RuneCountInString(name))
}
在这里插入图片描述
在这里插入图片描述
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022/07/13 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 文章目录
  • 一、数据类型概要
  • 二、字符串类型
    • 1.计算字符串的长度
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档