Go -- 字符串

栏目: Go · 发布时间: 5年前

内容简介:Unicode是一种常用的字符串函数包:strings和strconv
  1. string是数据类型, 不是引用或指针类型
  2. string是 只读的byte slice ,len()返回它所包含的 byte数 (并不等同于 字符数
  3. string的byte数组可以存放 任何数据
func TestStringBasic(t *testing.T) {
    var s string
    t.Log(s) // 初始化为默认零值“”

    s = "hello"
    t.Log(len(s)) // 5

    // string是不可变的byte slice
    // s[1] = '3' // cannot assign to s[1]

    // 可以存储任何二进制数据
    s = "\xE4\xB8\xAD"
    t.Log(s) // 中
}

编码与存储

Unicode是一种 字符集 (code point,字符编码),UTF-8是Unicode的 存储实现 (转换为 字节序列 的规则)

func TestStringEncode(t *testing.T) {
    s := "中"
	t.Log(len(s)) // 3,byte数

	// rune:取出string中的Unicode
	c := []rune(s)
	t.Log(len(c))                    // 1
	t.Log(unsafe.Sizeof(c[0]))       // 4
	t.Logf("%s Unicode %X", s, c[0]) // 中 Unicode 4E2D
	t.Logf("%s UTF-8 %X", s, s)      // 中 UTF-8 E4B8AD
}

func TestStringToRune(t *testing.T) {
    s := "中山市"
    // range遍历,迭代输出的是rune,而不是byte
    for _, c := range s {
    	// [1]表示都格式化第1个参数
    	t.Logf("%[1]c %[1]X", c)
    	// 中 4E2D
    	// 山 5C71
    	// 市 5E02
    }
}
字符 “中”
Unicode 0x4E2D
UTF-8 0xE4B8AD
string/[]byte [0xE4,0xB8,0xAD]

字符串函数

常用的字符串函数包:strings和strconv

import (
    "strconv"
    "strings"
    "testing"
)

func TestStrings(t *testing.T) {
    s := "A,B,C"
    // 分割
    parts := strings.Split(s, ",")
    for _, part := range parts {
    	t.Log(part)
    }
    // 连接
    t.Log(strings.Join(parts, "-")) // A-B-C
}

func TestStringConvert(t *testing.T) {
    s := strconv.Itoa(10)
    t.Log("str" + s) // str10,Go不支持隐式转换,证明10是字符串
    if i, err := strconv.Atoi("10"); err == nil {
    	t.Log(10 + i) // 20
    }
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

奈飞文化手册

奈飞文化手册

[美] 帕蒂·麦考德 / 范珂 / 浙江教育出版社 / 2018-10-1 / 69

一本对奈飞文化进行深入解读的力作。2009年,奈飞公开发布了一份介绍企业文化的PPT文件,在网上累计下载量超过1500万次,被Facebook的CFO谢丽尔·桑德伯格称为“硅谷重要文件”。本书是奈飞前CHO,PPT的主要创作者之一帕蒂·麦考德对这份PPT文件的深度解读。 本书系统介绍奈飞文化准则,全面颠覆20世纪的管人理念。在这本书中,帕蒂·麦考德归纳出8条奈飞文化准则,从多个角度揭示了奈飞......一起来看看 《奈飞文化手册》 这本书的介绍吧!

URL 编码/解码
URL 编码/解码

URL 编码/解码

正则表达式在线测试
正则表达式在线测试

正则表达式在线测试

HEX HSV 转换工具
HEX HSV 转换工具

HEX HSV 互换工具