内容简介:本片将分享如何将多个字符串连接成一个字符串,并将给定的字符串作为分隔符。一个真实的用例是动态构建SQL select语句。
本片将分享如何将多个字符串连接成一个字符串,并将给定的字符串作为分隔符。
一个真实的用例是动态构建SQL select语句。
使用分隔符连接字符串切片
Golang 版本
1.12.1
前言
本片将分享如何将多个字符串连接成一个字符串,并将给定的字符串作为分隔符。
一个真实的用例是动态构建SQL select语句。
实现
-
创建文件
join.go
,代码如下:package main import ( "fmt" "strings" ) const selectBase = "SELECT * FROM user WHERE %s " var refStringSlice = []string{ " FIRST_NAME = 'Jack' ", " INSURANCE_NO = 333444555 ", " EFFECTIVE_FROM = SYSDATE "} func main() { sentence := strings.Join(refStringSlice, "AND") fmt.Printf(selectBase+"\n", sentence) }
$ go run join.go SELECT * FROM user WHERE FIRST_NAME = 'Jack' AND INSURANCE_NO = 333444555 AND EFFECTIVE_FROM = SYSDATE
-
创建文件
join_manually.go
,代码如下:package main import ( "fmt" "strings" ) const selectBase = "SELECT * FROM user WHERE " var refStringSlice = []string{ " FIRST_NAME = 'Jack' ", " INSURANCE_NO = 333444555 ", " EFFECTIVE_FROM = SYSDATE "} type JoinFunc func(piece string) string func main() { jF := func(p string) string { if strings.Contains(p, "INSURANCE") { return "OR" } return "AND" } result := JoinWithFunc(refStringSlice, jF) fmt.Println(selectBase + result) } func JoinWithFunc(refStringSlice []string, joinFunc JoinFunc) string { concatenate := refStringSlice[0] for _, val := range refStringSlice[1:] { concatenate = concatenate + joinFunc(val) + val } return concatenate }
$ go run join_manually.go SELECT * FROM user WHERE FIRST_NAME = 'Jack' OR INSURANCE_NO = 333444555 AND EFFECTIVE_FROM = SYSDATE
原理
为了将字符串切片连接成单个字符串,这里有 string
包的 Join
函数。简单地说,需要为切片提供需要连接的字符串。这样,就可以轻松地连接字符串切片。 Join
函数的使用如步骤1所示。
当然,连接可以通过在切片上迭代来手动实现。通过这种方式,可以通过一些更复杂的逻辑定制分隔符。步骤2只是表示如何根据当前处理的字符串将手动连接用于更复杂的逻辑。
延伸
该 Join
函数由 bytes
包提供,它自然地用于连接字节片。
以上所述就是小编给大家介绍的《go基础库之使用分隔符连接字符串切片》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。