我是靠谱客的博主 有魅力玉米,最近开发中收集的这篇文章主要介绍go-09-基本数据类型-字符串和布尔值一、字符二、字符串二、布尔值 bool,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

一、字符

Go 中,独立的字母、数字和符号被统称为字符。
通过拼接多个字符并使用双引号包裹起来,就得到了字符串字面量,在 Go 中使用 string 表示。

独立的字符需要使用英文的单引号包裹起来,就像下面的代码里一样:

var w = 'a'

代码点

实际上计算机存储字符、符号和表情的时候,存储的是它们对应的一个到多个数字,这些数字称为 代码点。

统一码联盟(Unicode Consortium)定义了每个字符对应的代码点。
例如,大写字母 A 对应的代码点为 65,表情???? 对应的代码点为 128515。
这些可以使用格式化输出中的 %c%v 来验证。


fmt.Printf("%c %[1]vn", 'A') // A 65
fmt.Printf("%c %[1]vn", '????') // ???? 128515

rune 类型

Go 中使用 rune(符文)类型用于表示单个Unicode 的代码点,该类型是 int32 类型的别名。


var pi rune = 960
var alpha rune = 940
fmt.Printf("%v -> %[1]c n%v -> %[2]cn", pi, alpha)

以上代码将会输出

960 -> π
940 -> ά

实际上二进制数据可以使用 byte 类型表示,它是 uint8 类型的别名。
byte 也可以表示 美国信息交换标准代码(ASCII)中的英文字符(总供 128个字符,包含了英文标点符号)。


var bang byte = 33
fmt.Printf("%v -> %[1]cn", bang) // 33 -> !

实际上 Go 提供了相应的字符字面量句法,可以直接使用单引号包裹单个字符,这样 Go 会自动推导出其类型为 rune


pi1 := 'π'
var pi1 = 'π'
var pi1 rune = 'π'

实际输出时,类型会显示 int32

二、字符串

1 声明 string

默认情况下,Go 会把双引号包裹起来的字面值推断为 string 类型。
如下代码的作用是一样的:

s = "Go"
var s = "Go"
var s string = "Go"

2 零值

字符串的零值是 ""

var blank string

3 原始字符串字面量

若果你执行打印出 n 而不是打印新的一行,需要使用反引号 ``

fmt.Println("hellonworld")
fmt.Println(`hellonworld`)

如上代码谁打印出如下内容:

hello
world
hellonworld

这种反引号的方式,可以让原始字符串字面量实现跨越多个文本行。

fmt.Println(`
hello
world
`)

这会输出


hello
world

使用场景,Windows 系统的文件路径就非常适合使用原始字符串字面量。

path := `C:go`
fmt.Println(path)

4 获取字符串中的字符

字符串可以使用字符在字符串中的索引来获取到这个字符,但是无法修改字符串。


msg := "hello"
c := msg[3]
fmt.Printf("字符字面值是%c 代码点是%[1]vn",c) // 字符字面值是l 代码点是108

实现把小写字母转换为大写的程序


c := 'g'
c = c - 'a' + 'A'
fmt.Printf("%v - %v + %vn", 'g', 'a', 'A') // 103 - 97 + 65
fmt.Printf("%c %[1]vn", c) // G 71

二、布尔值 bool

布尔值的取值返回只有 truefalse


t := true
f := false
fmt.Printf("%v %[1]Tn", t) // true bool
fmt.Printf("%v %[1]Tn", f) // false bool

最后

以上就是有魅力玉米为你收集整理的go-09-基本数据类型-字符串和布尔值一、字符二、字符串二、布尔值 bool的全部内容,希望文章能够帮你解决go-09-基本数据类型-字符串和布尔值一、字符二、字符串二、布尔值 bool所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(63)

评论列表共有 0 条评论

立即
投稿
返回
顶部