go中字符串类型string的用法
示例
// 字符串类型string的用法
package main
import (
"fmt"
"unsafe"
)
func main() {
// 字符串类型 str1
var str1 string = "上海 北京 12345 西安"
fmt.Printf("str1 的值为 %s, %v, %q, 类型为 %T, 占 %d 个字节\n", str1, str1, str1, str1, unsafe.Sizeof(str1)) // str1 的值为 上海 北京 12345 西安, 上海 北京 12345 西安, "上海 北京 12345 西安", 类型为 string, 占 16 个字节
var str2, str3 string = "hello ", "world"
fmt.Printf("str2 = %q, %v, %s, str3 = %q, %v, %s\n", str2, str2, str2, str3, str3, str3) // str2 = "hello ", hello , hello , str3 = "world", world, world
// 错误:cannot assign to str2[1]
// go中的字符串是不可变的,一旦被赋值,不能再修改
// str2[1] = 'k'
// fmt.Printf("str2 = %v\n", str2)
// 双引号会识别转义字符
// 中文字符串
str4 := "你好\000北京\t上海济南武汉\007天津\x7f"
fmt.Printf("str4 = %v\n", str4) // str4 = 你好北京 上海济南武汉天津
fmt.Printf("str4 = %s\n", str4) // str4 = 你好北京 上海济南武汉天津
// %v和%s一起格式化字符串时,输出的结果不一样
fmt.Printf("str4 = %v, %s\n", str4, str4) // str4 = 你好北京 上海济南武汉天., 你好北京 上海济南武汉天津
// 英文字符串
str5 := "hello\000world\tgood\007yellow\x7f"
fmt.Printf("str5 = %v\n", str5) // str5 = helloworld goodyellow
fmt.Printf("str5 = %s\n", str5) // str5 = helloworld goodyellow
// %v和%s一起格式化字符串时,输出的结果不一样
fmt.Printf("str5 = %v, %s\n", str5, str5) // str5 = helloworld goodyello, helloworld goodyellow
// 反引号,以字符串的原生形式输出,包括换行和特殊字符
// 下面用反引号原样输出一段示例代码
var str6 = `
// bool布尔类型的用法
package main
import (
"fmt"
"unsafe"
)
func main() {
// bool类型
b1 := false
fmt.Printf("b1的值为 %t, 类型为 %T, 占 %d 个字节\n", b1, b1, unsafe.Sizeof(b1)) // b1的值为 false, 类型为 bool, 占 1 个字节
// b1 = 1 会报错: cannot use 1 (type int) as type bool in assignment
// 因为b1是bool类型,只能取值true或者false
// 不可以用0或者非0的整数替代false或者true,这点与C语言不同
// n1 := 1
// 错误:non-bool n1 (type int) used as if condition
// if n1 {
// fmt.Printf("n1 = %d\n", n1)
// }
// 错误:cannot use 0 (type int) as type bool in assignment
// var b2 bool = 0
// fmt.Printf("b2 = %t\n", b2)
}
`
fmt.Printf("\t示例代码: \n%v\n", str6)
// 以上代码会输出:
//
// 示例代码:
// bool布尔类型的用法
// package main
// import (
// "fmt"
// "unsafe"
// )
// func main() {
// // bool类型
// b1 := false
// fmt.Printf("b1的值为 %t, 类型为 %T, 占 %d 个字节\n", b1, b1, unsafe.Sizeof(b1)) // b1的值为 false, 类型为 bool, 占 1 个字节
// // b1 = 1 会报错: cannot use 1 (type int) as type bool in assignment
// // 因为b1是bool类型,只能取值true或者false
// // 不可以用0或者非0的整数替代false或者true,这点与C语言不同
// // n1 := 1
// // 错误:non-bool n1 (type int) used as if condition
// // if n1 {
// // fmt.Printf("n1 = %d\n", n1)
// // }
// // 错误:cannot use 0 (type int) as type bool in assignment
// // var b2 bool = 0
// // fmt.Printf("b2 = %t\n", b2)
// }
// 用加号 '+' 进行拼接
str7, str8, str9 := "你好", " 中国 ", "北京"
// 加号两边必须都是字符串才可以拼接
newStr1 := str7 + str8 + str9
fmt.Printf("拼接之后的新串为 %q, %v\n", newStr1, newStr1) // 拼接之后的新串为 "你好 中国 北京", 你好 中国 北京
// 字符串过长时用 '+' 进行分行,然后拼接
// 加号必须放在分行的最右边
var str10 string = "剑阁峥嵘而崔嵬,一夫当关,万夫莫开。" +
"所守或匪亲,化为狼与豺。朝避猛虎,夕避长蛇;磨牙吮血," +
"杀人如麻。锦城虽云乐,不如早还家。蜀道之难,难于上青天," +
"侧身西望长咨嗟!"
fmt.Printf("str10的内容为:%v\n", str10) // str10的内容为:剑阁峥嵘而崔嵬,一夫当关,万夫莫开。所守或匪亲,化为狼与豺。朝避猛虎,夕避长蛇;磨牙吮血,杀人如麻。锦城虽云乐,不如早还家。蜀道之难,难于上青天,侧身西望长咨嗟!
}
总结

go中字符串类型string的用法的更多相关文章
- JAVA中字符串函数subString的用法小结
本篇文章主要是对JAVA中字符串函数subString的用法进行了详细的介绍,需要的朋友可以过来参考下,希望对大家有所帮助 String str; str=str.substring(int begi ...
- JavaScript中字符串分割函数split用法实例
这篇文章主要介绍了JavaScript中字符串分割函数split用法,实例分析了javascript中split函数操作字符串的技巧,非常具有实用价值,需要的朋友可以参考下 本文实例讲述了JavaSc ...
- java 字符串类型String
在本质上,字符串实际上一个char类型的数组,由java.lang.String类来表示,该类具有一系列的属性和方法,提供对字符串的一些操作.除此之外,java还提供了StringBuffer类来处理 ...
- java和数据库中日期类型的常见用法
(1)java中日期类型:Date.Timestamp(2)数据库中:Date.Timestamp(3)字符串和Date之间的格式化转换: SimpleDateFormat类方法: format ...
- JavaScript中字符串类型
字符串类型 字符串介绍 这是程序里面使用最为广泛的一-种类型.在JavaScript里面, 可以使用单引号,也可以使用双引号: 字符串这种数据类型非常霸道,它和其他数据类型相加都会被转换后才为字符串类 ...
- java中字符串池,String池,共享池到底是怎么回事?
栈中有共享池的概念,比 如下面例子中,sz="hello";在栈中创建一个String对象引用变量sz,然后看看栈中有没有"hello",如果没有,则将&quo ...
- mysql中字符串类型char(n)和varchar(n)的区别
n的含义 根据网络上找到的结果(不能保证准确),在5.0.3以后版本中,n均代表字符数,而不是字节数:我用来测试的版本是5.7.20,该版本中,n表示字符数. 验证过程如下 建表 CREATE TAB ...
- Python笔记_第一篇_面向过程_第一部分_5.Python数据类型之字符串类型(string)
关于Python的字符串处理也如其他语言一样属于重点中的重点,主要是牵扯到的函数和内容较为多和乱一些.关于什么是字符串,Python中的定义是:以单引号或者双引号括起来的任意文本. 1. 字符串的 ...
- Swift中可选类型(Optional)的用法 以及? 和 ! 的区别 (转载博客,知识分享)
本文转载自:代码手工艺人的博客,原文名称:Swift之 ? 和 ! Swift语言使用var定义变量,但和别的语言不同,Swift里不会自动给变量赋初始值,也就是说变量不会有默认值,所以要求使用变量之 ...
随机推荐
- 理解uboot过程中的优秀博客
To_run_away的博客 https://blog.csdn.net/qq_16777851/column/info/28098/5 加了微信好友,公众号也有文章. Camus https://c ...
- 4. jaxp----dom解析器(DocumentBuilderFactory、DocumentBuilder)
1.DocumentBuilderFactory--解析器工厂(抽象类 javax.xml.parsers.DocumentBuilderFactory) newInstance() 获取 Docu ...
- jmeter接口测试与接口测试工具
接口测试与接口测试工具 1,什么是接口? 接口,Application Programming Interface(API) 通俗的讲 就是HTTP请求 2,什么是接口测试? 接口测试测试组件间接口的 ...
- 富文本编辑器tinymce支持从word复制粘贴保留格式和图片的插件wordpaster
tinymce是很优秀的一款富文本编辑器,可以去官网下载.https://www.tiny.cloud 这里分享的是它官网的一个收费插件powerpaste的旧版本源码,但也不影响功能使用. http ...
- BZOJ 2060: [Usaco2010 Nov]Visiting Cows 拜访奶牛 树形DP
Code: #include <bits/stdc++.h> #define setIO(s) freopen(s".in","r",stdin) ...
- GCD 和 NSOperationQueue 的差别
http://stackoverflow.com/questions/10373331/nsoperation-vs-grand-central-dispatch http://www.cocoach ...
- windows server IIS启用Windows authentication
双击打开IIS网站的authentication,如果有Windows authentication,直接右键启用即可,如果没有的话需要先安装一下Windows authentication,Micr ...
- 4.HTML 常用标签及属性
1. 链接 标签: <a></a> 属性: href:链接地址 target:打开方式 _blank:新标签页打开 _self:当前页面打开(默认) title:链接提示 2. ...
- 黑马lavarel教程---2、获取用户输入
黑马lavarel教程---2.获取用户输入 一.总结 一句话总结: lavarel中获取用户输入可以通过Input外观模式和Request外观模式,两者的对应的方法啥的都一样,比如get.all.o ...
- MySQL分组聚合group_concat + substr_index
场景:给予一张商品售卖表,表中数据为商品的售卖记录,假设表中数据是定时脚本插入的,每个时间段的商品售卖数量不同,根据此表找各个商品的最多售卖数量的数据. 1.数据表 CREATE TABLE `goo ...