Go语言中文网 为您找到相关结果 451

ICAP: 互换客户端地址协议

什么是ICAP?从以太坊Homestead指南的词汇表中可以看出: Interexchange Client Address Protocol, an IBAN-compatible system for referencing and transacting to client accounts aimed to streamline the process of transferring funds, worry-free between exchanges and, ultimately, making KYC and AML concerns a thing of the past. ICAP 互换客户端地址协议,一种IBAN兼容系统,用于引用和处理客户帐户,旨在简化资金转移流程,在...阅读全文

golang package整理(strings)

开发十年,就只剩下这套Java开发体系了 >>> /*package strings*/ //HasPrefix 判断字符串 s 是否以 prefix 开头 strings.HasPrefix(s, prefix string) bool //HasSuffix 判断字符串 s 是否以 suffix 结尾 strings.HasSuffix(s, suffix string) bool //Contains 判断字符串 s 是否包含 substr strings.Contains(s, substr string) bool //****判断子字符串或字符在父字符串中出现的位置(索引)***// //Index 返回字符串 str 在字符串 s 中的索引(str 的第一个字符的索引),-1 ...阅读全文

博文 2018-09-23 00:33:09 ivandong_qifan

兄弟连Go语言培训go生成随机字符串

写了一个简单golang生成随机字符串的方法,分享出来,生成的都是大写的字母 funcinit(){ r=rand.New(rand.NewSource(time.Now().Unix())) } funcRandString(lenint)string{ bytes:=make([]byte,len) fori:=0;i b:=r.Intn(26)+65 bytes[i]=byte(b) } returnstring(bytes) } funcTestRand(t*testing.T){ fori:=0;i<10;i++{ fmt.Println(RandString(10)) } } 测试结果: ZGNHXBCJRQ OWXMEWZTKK GYEYPKJHGL CEHJXKHRAE FA...阅读全文

博文 2018-08-14 15:35:22 兄弟连区块链培训

Golang里的AES、DES、3DES加解密,支持ECB、CBC等多种模式组合,兼容JAVA、PHP等语言

[Openssl encryption](https://github.com/thinkoner/openssl):OpenSSL库的功能包装,用于对称和非对称加密和解密。 - AES-ECB - AES-CBC - DES-ECB - DES-CBC - 3DES-ECB - 3DES-CBC ## 安装 ``` go get -u github.com/thinkoner/openssl ``` ## 用法 ### AES 密钥的长度可以是16/24/32个字符(128/192/256位)。 AES-ECB: ```go src := []byte("123456") key := []byte("1234567890123456") dst , _ := openssl.AesECB...阅读全文

博文 2019-10-15 10:36:00 techoner

go 字符串

字符串 什么是字符串? Go 语言中的字符串是一个字节切片。把内容放在双引号""之间,我们可以创建一个字符串。让我们来看一个创建并打印字符串的简单示例。 package main import ( "fmt" ) func main() { name := "Hello World" fmt.Println(name) } 上面的程序将会输出 Hello World。 Go 中的字符串是兼容 Unicode 编码的,并且使用 UTF-8 进行编码。 单独获取字符串的每一个字节 由于字符串是一个字节切片,所以我们可以获取字符串的每一个字节。 package main import ( "fmt" ) func printBytes(s string) { for i:= 0; i < len(...阅读全文

博文 2019-04-09 07:35:09 听砜

golang规则表达式的写法

golang规则表达式的写法 matched, err := regexp.MatchString(`a.b`, "aaxbb") or re1, err := regexp.Compile(`regexp`) // error if regexp invalid re2 := regexp.MustCompile(`regexp`) // panic if regexp invalid 就不细说了,这里主要总结regexp的写法。 选择 表达式 含义 xy 连接,x后面跟y x|y 选择,或者x或者y xy|z 选择,xy或者z,它等同于(xy)|z xy* x后面跟0个或者多个y,等同于x(y*) 重复 表达式 含义 x* x重复0次或多次 x+ x重复1次或多次,即至少一次 x? x重...阅读全文

Golang中类型转换

package main import ( "github.com/astaxie/beego/logs" "strconv" ) func main() { //string 转 int var str string ="1" i, _ := strconv.Atoi(str) logs.Info(i) //string转int64 i64, _ := strconv.ParseInt(str, 10, 64) logs.Info(i64) //string转byte bytes := []byte(str) logs.Info(bytes) //int转string var number=10 itoa := strconv.Itoa(number) logs.Info(itoa) //...阅读全文

字符串函数在golang中的使用

package main import ( "fmt" "strings" ) func main() { //判断父字符串是否包含子字符串,包含为真,否则为假 fmt.Println("-------------------------------") fmt.Println("contains Function:", strings.Contains("Austrilia", "lia")) fmt.Println("contains Function:", strings.Contains("Austrilia", "mia")) //子字符串在父字符串中出现的次数 fmt.Println("-------------------------------") fmt.Println("...阅读全文

博文 2019-03-05 15:36:20 PowerMichael

gf框架之gvalid – 强大灵活的数据校验/表单校验模块

文章目录 校验规则校验方法使用示例单数据校验多数据校验 gf提供了非常强大易用的数据校验功能,通过gvalid包提供,封装了40种常用的校验规则,支持单数据多规则校验、多数据多规则批量校验、自定义错误信息、自定义正则校验等特性。由于gf是模块化、低耦合设计,gvalid包也可以在项目中单独引入使用。 使用方式: import "gitee.com/johng/gf/g/util/gvalid" 1 import "gitee.com/johng/gf/g/util/gvalid" 校验规则 40种常用的校验规则: required 格式:required 说明:必需参数 required-if 格式:required-if:field,value,... 说明:必需参数(当任意所给定字段值与...阅读全文

关于遍历数据的时候 时间戳转换时间字符串格式

~~~ type News_list struct { Nid int Ntitle string Ncontent string Ntime int64 //这里是 int64类型 数据库里也是bigint类型 Ntype int } //执行 sql2 := fmt.Sprintf("select nid,ntitle,ncontent,ntime,ntype from news_list where 1=1 order by nid desc limit %s,%s", 10, 20) rows, _ := mysql.DB.Query(sql2) for rows.Next(){ if err2 := rows.S...阅读全文

text/template传入的data为map[string]interface{},而Key中包含特殊字符如何编写模板?

text/template传入的data为map[string]interface{},而Key中包含特殊字符如何编写模板? 如: ``` data={"/abc/d+c": 123, ".2344": "image01.jpg"} ``` ``` template....begin {{"/abc/d+c"}} template....end ``` 希望获得 ``` template....begin 123 template....end ``` ...阅读全文

golang 错误处理

Go 语言使用 error 类型来返回函数执行过程中遇到的错误,如果返回的 error 值为 nil,则表示没有错误,否则 error 会返回一个说明错误的字符串。 其实 error 只是一个接口,定义如下: type error interface { Error() string } 你可以用任何类型去实现它(只要实现 Error() 方法即可)。 通过new 函数,生成简单的 error 对象 package main import ( "fmt" "iris/core/errors" ) func run(code int) error { if code > 0 { return errors.New("这是一个错误") } return nil; } func main() { ...阅读全文

博文 2019-07-09 18:32:39 战神悟空

golang-字符串

字符串比较相等 func main() { fmt.Println("ADN" == "ADN") fmt.Println("ADN" == "adn") fmt.Println(strings.Compare("ADN", "ADN")) fmt.Println(strings.Compare("ADN", "adn")) fmt.Println(strings.EqualFold("ADN", "ADN")) fmt.Println(strings.EqualFold("ADN", "adn")) } Compare比"=="快,两种方法都区分大小写 EqualFold比较UTF-8编码在小写的条件下是否相等,不区分大小写。 字符串拼接 fmt.Sprintf 和 strings.Joi...阅读全文

博文 2017-08-21 12:05:10 ifcoder

golang-练习1

题目: 输入字符串,返回最大的单词。 实例:run#¥@!time 返回:time package main import ( "fmt" "strings" ) func MyPrintf(a string) string { mm := strings.FieldsFunc(a,split) fmt.Println(mm) for i:=0;i<(len(mm));i++{ if len(mm[0])='a'&&s<='z')||(s>='A'&&s<='Z')){ return false } return true }...阅读全文

博文 2017-11-10 16:00:01 peterinblog

GoLang生成不重复六位验证码

不同的整数生成固定六位的字符串验证码 package main import ( "container/list" "fmt" ) var baseStr string = "0123456789ABCDEFGHJKLMNPQRSTUVWXYZ" var base []byte = []byte(baseStr) func Base34(n uint64) []byte { quotient := n mod := uint64(0) l := list.New() for quotient != 0 { mod = quotient % 34 quotient = quotient / 34 l.PushFront(base[int(mod)]) } listLen := l.Len() ...阅读全文

Golang学习(13)——unicode包

Golang学习 - unicode 包------------------------------const ( MaxRune = '\U0010FFFF' // Unicode 码点的最大值 ReplacementChar = '\uFFFD' // 表示无效的码点 MaxASCII = '\u007F' // 最大 ASCII 值 MaxLatin1 = '\u00FF' // 最大 Latin-1 值)------------------------------// 判断字符 r 是否在 rangtab 范围内。// 可用的 RangeTable 参见 go/src/unicode/tables.go。func Is(rangeTab *RangeTable, r rune) bo...阅读全文

博文 2017-02-10 10:20:17 1160636144

一次写shell脚本的经历记录——特殊字符惹的祸

本文首发于微信公众号“我的小碗汤”,扫码文末二维码即可关注,欢迎一起交流! redis在容器化的过程中,涉及到纵向扩pod实例cpu、内存以及redis实例的maxmemory值,statefulset管理的pod需要重启。所以把redis集群的状态检查放到了健康检查中,依赖statefulset的原生能力(pod实例ready后才重启下一个,ready后endpoints controller将pod信息更新到endpoints资源对象中),而没有在redis operator中写逻辑去判断。 需要用redis-cli -h {redis实例IP} ping查看redis是否正常,同时用redis-cli -c -h {redis实例IP} -a {redis密码} cluster inf...阅读全文

博文 2019-10-25 00:04:20 Liabio

golang fmt格式化字符串%v,%T

版权声明:本文为翔云原创文章,未经博主允许不得转载。 https://blog.csdn.net/lanyang123456/article/details/78172375 T常用的格式化字符串有: %v the value in a default format when printing structs, the plus flag (%+v) adds field names %#v a Go-syntax representation of the value %T a Go-syntax representation of the type of the value 不同类型默认的%v 如下: bool: %t int, int8 etc.: %d uint, uint8 etc...阅读全文

博文 2019-02-01 11:31:38 lanyang123456

go语言语法

变量定义 先声明后使用 var v1 int //整形,长度依平台不同而改变 var v2 string //字符串 var v3 [3]int //数组 v1 = 10 v2 = "hello" v3 = [3]int{1,2,3} 声明同时初始化: var v1 int = 10 //三种方式具有相同效果 var v1 = 10 v1 := 10 var v1 [3]int = [3]int{1,2,3} //三种方式具有相同效果 var v1 = [3]int{1,2,3} v1 := [3]int{1,2,3} $(function () { $('pre.prettyprint code').each(function () { var lines = $(this).text()...阅读全文

博文 2016-10-27 08:00:13 chengminghu001

求助,关于go-sciter在ubuntu下中文的问题。

操作系统:elementary 使用go-sciter开发的应用,中文不显示,utf8,gbk,gb2312字符集都试过了。 //加载文件 w.LoadHtml(` sss加载文件logd `, "") //设置标题 w.SetTitle("你好,世界") //显示窗口 w.Show() //运行窗口,进入消息循环 w.Run() ![屏幕截图 2018-10-23 10.46.27.png](https://static.studygolang.com/18102...阅读全文

博文 2018-10-23 10:47:05 nohairss

【译】Go语言之父带你重新认识字符串、字节、rune和字符

以下文章翻译自罗伯·派克发表在Go Blog的文章,文章中为读者详述了Go语言中字符串与我们经常提起的字节、字符还有rune的关系和相互之间的不同。正如派克在文中所说 字符串这个话题对于一篇博客文章来说似乎太简单了,但是要很好地使用它们,不仅需要了解它们的工作原理,还需要了解字节,字符和 rune 的区别,以及 Unicode 和 UTF- 8,字符串和字符串直接量之间的区别,以及其他甚至更细微的区别。 原文地址:blog.golang.org/strings 文章篇幅还是挺长的,大家时间都很宝贵所以我先把文章探究的问题的结论放在前面,有时间的同学还是建议整篇读一下。 Go 源代码始终为 UTF-8。 字符串可以包含任意字节。 字符串文字中不包含字节级转义符时字符串始终包含有效的 UTF-8...阅读全文

博文 2020-02-11 22:34:24 kevinyan

Go语言学习笔记02--go语言运算符与流程控制分支语句

1.并发概念概述 并发指的是同一时间的多次访问。解决并发途径一般就是创建多个服务器去分流访问, 对于服务器而言,响应速度越快那么并发量肯定就越高。 或者是通过语言逻辑来解决分流。go语言对于并发天生支持性就非常好 ps:打开mac系统终端快捷方式 cmd+space ps:查看go安装版本 go version 2.字符和字符串的区别 1)转义字符 go语言中使用\反斜线表示转义字符,\反斜线配合其他的字符进行组合能够在字符串中拥有特殊的含义 例如: \n 换行 \r 回车 \\ 输出单一反斜线 \" 双引号 \0 字符串结束符号 ps:在很多语言中\'转义字符都用来表示单引号,但是在go语言中却并不存在这样的转义字符。 其原因是因为在go语言中''单引号是用来表示字符的,并不能用于创建字符...阅读全文

博文 2018-11-29 19:41:24 FrankAdd

Go语言字符串浅析

在Go语言中,字符串就是一个只读(read-only)的,可以包含任意字节(byte)的切片(slice)。由于Go源码文件都是使用UTF-8编码的,所以直接在源码中输入的字符串也都是用UTF-8编码的(前提是字符串里没有byte-level escapes,即字节层面上的转义)。请看下面这个例子: package main import "fmt" func main() { s := "日志log" fmt.Println(len(s)) } 执行结果: 9 s是一个UTF-8编码的字符串,“日志”两个汉字各占3个字节,所以一共是9个字节。 再看一个例子: package main import "fmt" func main() { s:="\xFF\xFF" fmt.Println(...阅读全文

博文 2017-06-24 19:16:27 肖楠

LeetCode-8-字符串转换整数 (atoi)

题目描述 字符串转换整数 (atoi) 请你来实现一个 atoi 函数,使其能将字符串转换成整数。 首先,该函数会根据需要丢弃无用的开头空格字符,直到寻找到第一个非空格的字符为止。 当我们寻找到的第一个非空字符为正或者负号时,则将该符号与之后面尽可能多的连续数字组合起来,作为该整数的正负号;假如第一个非空字符是数字,则直接将其与之后连续的数字字符组合起来,形成整数。 该字符串除了有效的整数部分之后也可能会存在多余的字符,这些字符可以被忽略,它们对于函数不应该造成影响。 注意:假如该字符串中的第一个非空格字符不是一个有效整数字符、字符串为空或字符串仅包含空白字符时,则你的函数不需要进行转换。 在任何情况下,若函数不能进行有效的转换时,请返回 0。 说明: 假设我们的环境只能存储 32 位大小的...阅读全文

golang数组

package main import "fmt" func f1() { a := [...]string{"a", "b", "c", "d"} for i := range a { fmt.Println("Array item", i, "is", a[i]) } } func f2() { var arr1=new([5]int) for i:=0;i<5;i++ { arr1[i]=i*3 } for _,val:=range arr1{ fmt.Printf("-----%d----arr1----\n",val) } var arr[5] int for i:=0;i<5;i++ { arr[i]=i*2 } for _,val:=range arr{ fmt.Printf(...阅读全文

博文 2018-08-20 10:35:10 次序

golang bytes

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/youshijian99/article/details/85225341 func HasPrefix(s, prefix []byte) bool 判断s是否有前缀切片prefix。 package main import ( "bytes" "fmt" ) func main() { // 判断字符串是否包含"hel" fmt.Println(bytes.HasPrefix([]byte("hello"), []byte("hel"))) fmt.Println(bytes.HasPrefix([]byte("heelo"), []byte("hel"))) } 运行结果: true fa...阅读全文

博文 2019-04-17 14:31:34 youshijian99

golang学习笔记5:字符串及相关函数

字符串是 UTF-8 字符的一个序列(当字符为 ASCII 码时则占用 1 个字节,其它字符根据需要占用 2-4 个字节)。UTF-8 是被广泛使用的编码格式,是文本文件的标准编码,其它包括 XML 和 JSON 在内,也都使用该编码。由于该编码对占用字节长度的不定性,Go 中的字符串也可能根据需要占用 1 至 4 个字节,这与其它语言如 C++、Java 或者 Python 不同(Java 始终使用 2 个字节)。Go 这样做的好处是不仅减少了内存和硬盘空间占用,同时也不用像其它语言那样需要对使用 UTF-8 字符集的文本进行编码和解码。字符串是一种值类型,且值不可变,即创建某个文本后你无法再次修改这个文本的内容;更深入地讲,字符串是字节的定长数组。Go 支持以下 2 种形式的字面值:解释...阅读全文

博文 2018-10-13 00:34:40 编程老司机

go实现“水仙花数”

题目: 打印出100-999中所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字 立方和等于该数本身。例如:153 是一个“水仙花数”,因为 153=1 的三次 方+5 的三次方+3 的三次方 我使用的是Go Modules 管理依赖方式引入下面的add包就可以了运行了 package add import ( "fmt" "strconv" ) func Sxhs() { var str string fmt.Scanf("%s", &str) var result = 0 fmt.Printf("%d \n", result) for i := 0; i < len(str); i++ { num := int(str[i] - '0') //字符串本身是ascii码 res...阅读全文

博文 2020-04-10 21:32:41 小兵

Go语言之父带你重新认识字符串、字节、rune和字符

以下文章翻译自罗伯·派克发表在Go Blog的文章,文章中为读者详述了Go语言中字符串与我们经常提起的字节、字符还有rune的关系和相互之间的不同。正如派克在文中所说 字符串这个话题对于一篇博客文章来说似乎太简单了,但是要很好地使用它们,不仅需要了解它们的工作原理,还需要了解字节,字符和 rune 的区别,以及 Unicode 和 UTF- 8,字符串和字符串直接量之间的区别,以及其他甚至更细微的区别。原文地址:https://blog.golang.org/strings 文章篇幅还是挺长的,大家时间都很宝贵所以我先把文章探究的问题的结论放在前面,有时间的同学还是建议整篇读一下。 Go 源代码始终为 UTF-8。 字符串可以包含任意字节。 字符串文字中不包含字节级转义符时字符串始终包含有效...阅读全文

博文 2020-02-11 19:32:39 Kevin

Golang动态规划

1143. 最长公共子序列 给定两个字符串 text1 和 text2,返回这两个字符串的最长公共子序列。 一个字符串的 子序列 是指这样一个新的字符串:它是由原字符串在不改变字符的相对顺序的情况下删除某些字符(也可以不删除任何字符)后组成的新字符串。 例如,"ace" 是 "abcde" 的子序列,但 "aec" 不是 "abcde" 的子序列。两个字符串的「公共子序列」是这两个字符串所共同拥有的子序列。 若这两个字符串没有公共子序列,则返回 0。 示例 1: 输入:text1 = "abcde", text2 = "ace" 输出:3 解释:最长公共子序列是 "ace",它的长度为 3。 示例 2: 输入:text1 = "abc", text2 = "abc" 输出:3 解释:最长公共...阅读全文

博文 2020-05-03 12:32:42 DoneIsBetter

Go语言入门(二)-流程控制

go流程控制 字符串详解 字符串原理 字符串底层就是一个byte数组,所以可以和[]byte类型互相转换 字符串中的字符是不能修改的 字符串是有byte字节组成,所以字符串的长度是byte字节的长度 rune类型(int32占四个字节)用来表示utf8字符,一个rune由一个或者多个byte组成 func stringByte() { var str string str = "abc你好" var b []byte = []byte(str) var c[]rune = []rune(str) fmt.Printf("%c\n",97) fmt.Printf("b=%v,\tlen(str)=%d\n",b,len(str)) fmt.Printf("%d\n",len(c)) } 练习 ...阅读全文

博文 2020-03-14 11:33:13 wx5b285b48ed74e

求 JSON 2个函数

~~~ 求下面的代码 有问题, 我需要 一个转换JSON 一个反序列化到MAP 方便修改值,思路这样的 比如生成JSON值 var a map[string]interface{} a["code"]="100" a["msg"]="ok" result := JSON_Serialize(a) //这样result得到一串JSON值了 ================ 反序列化 从数据库或则字符串获取得到一串JSON值 bb := `{"Code":"-1","Msg":"code error!"}` result2 :=JSON_Deserialize(bb) //然后修改一些值 修改完毕再转换JSON即可 result2["Code"]=="200" ...阅读全文

time4go

## 项目地址 [https://github.com/smartwalle/time4go](https://github.com/smartwalle/time4go) ## Time4Go Go 语言的时间工具库。 ## 帮助 在集成的过程中有遇到问题,欢迎加 QQ 群 564704807 讨论。 ## 安装 ```bash $ go get github.com/smartwalle/time4go ``` ## 开始 ```go package main import ( "fmt" "github.com/smartwalle/time4go" "time" ) ...阅读全文

Golang 学习笔记(3)—— 字符串操作

本文为转载,原文:Golang 学习笔记(3)—— 字符串操作 1、Contains func Contains(s, substr string) bool这个函数是查找某个字符是否在这个字符串中存在,存在返回true. package main import "fmt" import "strings" func main(){ fmt.Println(strings.Contains("chain", "ch")) fmt.Println(strings.Contains("ch", "chain")) fmt.Println(strings.Contains("chain", "")) //true fmt.Println(strings.Contains("", "")) //tr...阅读全文

博文 2017-08-14 11:05:04 ChainZhang

【Golang】处理时间的坑

需求 获取当前时间的字符串类型。 获取到时间之后,按照RFC3339的格式转换成time.Time类型 原版代码 package main import ( "fmt" "time" ) func main() { timeStr := time.Now().String() fmt.Println(timeStr) t, err := time.Parse(time.RFC3339, timeStr) if err != nil { fmt.Printf("err : %v", err) return } fmt.Println(t) } 原版代码输出结果 2020-03-24 22:44:01.8186776 +0800 CST m=+0.002997901 err : parsing ...阅读全文

博文 2020-03-25 12:32:43 冉小妹Ran

Golang学习 - unicode/utf16 包

// IsSurrogate 判断 r 是否为代理区字符 // 两个代理区字符可以用来组合成一个 utf16 编码 func IsSurrogate(r rune) bool // EncodeRune 将字符 r 编码成 UTF-16 代理对 // r:要编码的字符 // 如果 r < 0x10000 ,则无需编码,其 UTF-16 序列就是其自身 // r1:编码后的 UTF-16 代理对的高位码元 // r2:编码后的 UTF-16 代理对的低位码元 // 如果 r 不是有效的 Unicode 字符,或者是代理区字符,或者无需编码 // 则返回 U+FFFD, U+FFFD func EncodeRune(r rune) (r1, r2 rune) // DecodeRune 将 UT...阅读全文

博文 2019-04-19 18:34:40 佛心看世界

Golang实现统计文件内容的字符,数字,符号数量

废话不多说,直入主题 今天学习了通过Golang语言实现了统计文件内容中的字符,空格,数字,符号的数量, 当然也可以用来统计更多,例如:统计汉字,大写/小写字母等...仅需要更改部分代码即可. 知识点总结 代码实现前的思路分析: 打开一个文件,创建一个reader 每读取一行,就去统计该行有多少个字符,数字,空格等数量 然后将统计的数量储存到一个结构体内 引入的包有:bufio, io,os,fmt 源代码参考 package main import ( "bufio" "fmt" "io" "os" ) /* 代码编写思路: 1- 打开一个文件,创建一个reader 2- 每读取一行,就去统计该行有多少个字符,数字,空格等数量 3 - 然后将结果存到一个结构体内 */ // 定义一个结构体...阅读全文

博文 2019-10-13 00:32:52 aside section ._1OhGeD

类型转换

零值 变量在定义时没有明确的初始化时会赋值为 零值 。 零值是: 数值类型为 0 , 布尔类型为 false , 字符串为 "" (空字符串)。 Golang 不支持隐式类型转换,即便是从窄向宽转换也不行。 package main var b byte = 100 // var n int = b // ./main.go:5:5: cannot use b (type byte) as type int in assignment var n int = int(b) // 显式转换 func main() {} 同样不能将其他类型当 bool 值使用。 package main func main() { a := 100 if a { // Error: non-bool a (ty...阅读全文

【Go】高效截取字符串的一些思考

文链接:https://blog.thinkeridea.com/... 最近我在 Go Forum 中发现了 String size of 20 character 的问题,“hollowaykeanho” 给出了相关的答案,而我从中发现了截取字符串的方案并非最理想的方法,因此做了一系列实验并获得高效截取字符串的方法,这篇文章将逐步讲解我实践的过程。 字节切片截取 这正是 “hollowaykeanho” 给出的第一个方案,我想也是很多人想到的第一个方案,利用 go 的内置切片语法截取字符串: s := "abcdef" fmt.Println(s[1:4]) 我们很快就了解到这是按字节截取,在处理 ASCII 单字节字符串截取,没有什么比这更完美的方案了,中文往往占多个字节,在 utf8...阅读全文

博文 2019-10-31 09:02:38 thinkeridea

Delve代码分析笔记(2)——version

Version包只包含了一个version.go: package version import "fmt" // Version represents the current version of Delve. type Version struct { Major string Minor string Patch string Metadata string Build string } var ( // DelveVersion is the current version of Delve. DelveVersion = Version{Major: "0", Minor: "11", Patch: "0", Metadata: "alpha"} ) func (v Version...阅读全文

博文 2017-06-25 13:58:21 肖楠

golang刷LeetCode[0003] 无重复字符的最长子串

题目 https://github.com/betterfor/leetcode-go/tree/master/algorithms/0003_Longest_String 给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。 示例 1: 输入: "abcabcbb" 输出: 3 解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。 示例 2: 输入: "bbbbb" 输出: 1 解释: 因为无重复字符的最长子串是 "b",所以其长度为 1。 示例 3: 输入: "pwwkew" 输出: 3 解释: 因为无重复字符的最长子串是 "wke",所以其长度为 3。 请注意,你的答案必须是 子串 的长度,"pwke" 是一个子序列,不是子串。 题解 暴力法 简单来说就是列出...阅读全文

博文 2020-01-15 09:32:46 风云风雨

Golang strconv包使用

// atob.go ------------------------------------------------------------ // ParseBool 将字符串转换为布尔值 // 它接受真值:1, t, T, TRUE, true, True // 它接受假值:0, f, F, FALSE, false, False. // 其它任何值都返回一个错误 func ParseBool(str string) (value bool, err error) func main() { fmt.Println(strconv.ParseBool("1")) // true fmt.Println(strconv.ParseBool("t")) // true fmt.Println...阅读全文

博文 2019-01-28 15:34:50 小马哥_Magical

golang 中获取字符串个数

golang 中获取字符串个数 在 golang 中不能直接用 len 函数来统计字符串长度,查看了下源码发现字符串是以 UTF-8 为格式存储的,说明 len 函数是取得包含 byte 的个数 // string is the set of all strings of 8-bit bytes, conventionally but not // necessarily representing UTF-8-encoded text. A string may be empty, but // not nil. Values of string type are immutable. 举个例子,”Hello, 世界“(因为,对比所以用了中文) s := "Hello, 世界" fmt.Pr...阅读全文

博文 2019-08-14 10:32:46 zrds2e