GO语言入门学习之基本数据类型字符串
作者:PENGJUNQIAO 发布时间:2023-07-16 08:26:31
字符串
Go语言中的字符串以原生数据类型出现。 Go 语言里的字符串的内部实现使用UTF-8编码。 字符串的值为双引号(")中的内容,可以在Go语言的源码中直接添加非ASCII码字符
GO语言中字符串是用双引号包裹的
GO语言中单引号包裹的是字符
// 字符串
s := "Hello 中国"
// 单独的字母、汉字、符合表示一个字符
c1 := 'h'
c2 := '1'
c3 := '中'
// 字节:1字节=8Bit(8个二进制位)
// 1个字符'A'=1个字节
// 1个utf8编码的汉字'中'= 一般占3个字节
字符串转义符
转义符 含义
\r 回车符(返回行首)
\n 换行符(直接跳到下一行的同列位置)
\t 制表符
' 单引号
" 双引号
\ 反斜杠
字符串的常用操作
方法 介绍
len(str) 求长度
+或fmt.Sprintf 拼接字符串
strings.Split 分割
strings.contains 判断是否包含
strings.HasPrefix,strings.HasSuffix 前缀/后缀判断
strings.Index(),strings.LastIndex() 子串出现的位置
strings.Join(a[]string, sep string) join操作
package main
import (
"fmt"
"strings"
)
// 字符串
func main(){
// \ 本来是具有特殊含义的,告诉程序\就是一个单纯的\
path := "\"E:\\36期Python全栈开发资料\\Administrator(8E5370323193)\\预习(2)\""
path1 := "'E:\\36期Python全栈开发资料\\Administrator(8E5370323193)\\预习(2)'"
fmt.Println(path)
fmt.Println(path1)
s := "I'm ok"
fmt.Println(s)
// 多行的字符串
s2 := `
世情薄
人情恶
雨送黄昏花易落
`
fmt.Println(s2)
s3 := `E:\36期Python全栈开发资料\Administrator(8E5370323193)\预习(2)`
fmt.Println(s3)
// 字符串相关操作
fmt.Println(len(s3))
// 字符串拼接
name := "理想"
world := "远大"
ss := name + world
fmt.Println(ss)
ss1 := fmt.Sprintf("%s%s", name, world)
// fmt.Printf("%s%s", name, world)
fmt.Println(ss1)
// 分割
ret := strings.Split(s3, "\\")
fmt.Println(ret)
// 包含
fmt.Println(strings.Contains(ss, "理想"))
// 前缀
fmt.Println(strings.HasPrefix(ss, "理想"))
// 后缀
fmt.Println(strings.HasSuffix(ss, "理想"))
s4 := "abcded"
fmt.Println(strings.Index(s4, "c"))
fmt.Println(strings.LastIndex(s4, "c"))
fmt.Println(strings.Index(s4, "d"))
fmt.Println(strings.LastIndex(s4, "d"))
// 拼接
fmt.Println(strings.Join(ret, "+"))
}
byte和rune类型
字符用单引号(’)包裹起来
Go 语言的字符有以下两种:
uint8类型,或者叫 byte 型,代表了ASCII码的一个字符。
rune类型,代表一个 UTF-8字符。rune类型实际是一个int32
字符串底层是一个byte数组,可以和[]byte类型相互转换。字符串是不能修改的 字符串是由byte字节组成,所以字符串的长度是byte字节的长度。 rune类型用来表示utf8字符,一个rune字符由一个或多个byte组成。
修改字符串
要修改字符串,需要先将其转换成[]rune或[]byte,完成后再转换为string。无论哪种转换,都会重新分配内存,并复制字节数组。
类型转换
强制类型转换的基本语法如下:
T(表达式)
其中,T表示要转换的类型。表达式包括变量、复杂算子和函数返回值等.
package main
import (
"fmt"
)
func main() {
s := "Hello 中国"
// len()求的是byte字节的数量
n := len(s)
fmt.Println(n)
// for i := 0; i < len(s); i++ {
// fmt.Println(s[i])
// fmt.Printf("%c\n", s[i]) // %c:字符
// }
// 字符串修改
s2 := "白萝卜" // [白 萝 卜]
s3 := []rune(s2) // 把字符串强制转换成了一个rune切片
s3[0] = '红' // 单引号表示字符
fmt.Println(string(s3)) // 把rune切片强制转换成字符串
c1 := "红"
c2 := '红' // rune(int32)
fmt.Printf("c1:%T c2:%T\n", c1, c2) // c1:string c2:int32
c3 := "H"
c4 := 'H'
c5 := byte('H')
fmt.Printf("c3:%T c4:%T\n", c3, c4) // c3:string c4:int32
fmt.Printf("c4:%d\n", c4) // c4:72
fmt.Printf("c5:%T\n", c5) // c5:uint8
// 类型转换
n1 := 10 // int
var f float64
f = float64(n1)
fmt.Println(f)
fmt.Printf("%T\n", f) // float64
}
来源:https://www.cnblogs.com/QiaoPengjun/p/16154604.html
猜你喜欢
- 函数声明为:func Notify(c chan<- os.Signal, sig ...os.Signal)官方描述:Notify函
- 1 引言Pandas是作为Python数据分析著名的工具包,提供了多种数据选取的方法,方便实用。本文主要介绍Pandas的几种数据选取的方法
- 目录实验环境依赖项安装编程实现浏览器有一个可以用于展示网页的窗口代码总结实验环境操作系统:Linux Mint编辑器:vim编程语言:pyt
- 0X01函数说明:python range() 函数可创建一个整数列表,一般用在 for 循环中。0X02函数语法:range(start,
- 前言我们把可能发生错误的语句放在try模块里,用except来处理异常。except可以处理一个专门的异常,也可以处理一组圆括号中的异常,如
- Update 语句Update 语句用于修改表中的数据。语法:UPDATE 表名称 SET 列名称 = 新值 WHERE 列名称 = 某值P
- 今天在网上找到了一个可以动态加载js文件的js加载器,具体代码如下:JsLoader.jsvar MiniSite=new Object()
- #!/usr/bin/py2# -*- coding: utf-8 -*-#encoding=utf-8'''
- 在ASP中,FSO的意思是File System Object,即文件系统对象。
- root账户为MySQL的超级管理员用户,拥有MySQL提供的所有权限。我们登录了root账户可以重置其它创建的所有用户的密码,那么root
- PHP asXML()函数实例格式化 XML(版本 1.0)中的 SimpleXML 对象的数据:<?php $note=<&l
- pip用pipdeptree查看包依赖1、安装pipdeptreepip install pipdeptree2、使用pipdeptree查
- 简介:记录一下关于 Python 环境软件包的一些安装步骤1、升级 Python 到 2.7.10( 默认 2.6.6 )shell >
- asp如何将RGB颜色转化成到16进制的?在R G B中输入小于255的数字点击观看即可转换成#开通的16进制。代码如下:<%R_RG
- 1.安装 Selenium 模块Selenium支持很多浏览器,我选择的是Firefox浏览器。安装方法:①打开cmd;②输入命令 pip
- 最近和一程序员合作项目。弄的我头都大了~埋怨我的CSS命名看不懂~得按照他的来。结果我打开他的页面,看了看,从头第一个开始就是content
- 1、需要准备工具xftp:上传项目文件本地下载地址:https://www.jb51.net/softs/81853.htmlxshell:
- 操作系统:Ubuntu 17.04 64位MySQL版本:MySQL 5.7一、查看3306端口是否开放netstat -an|grep 3
- 本文定期更换windows壁纸的python程序,很简单,属于自己写着玩的那种,不提供完美的壁纸切换解决方案。安装pywin32 exten
- 这两天看了下某位大神的github,知道他对算法比较感兴趣,看了其中的一个计算数字的步数算法,感觉这个有点意思,所以就自己实现了一个。算法描