go基础库之使用分隔符连接字符串切片

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

内容简介:本片将分享如何将多个字符串连接成一个字符串,并将给定的字符串作为分隔符。一个真实的用例是动态构建SQL select语句。

本片将分享如何将多个字符串连接成一个字符串,并将给定的字符串作为分隔符。

一个真实的用例是动态构建SQL select语句。

使用分隔符连接字符串切片

Golang 版本

1.12.1

前言

本片将分享如何将多个字符串连接成一个字符串,并将给定的字符串作为分隔符。

一个真实的用例是动态构建SQL select语句。

实现

  1. 创建文件 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
    
  2. 创建文件 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基础库之使用分隔符连接字符串切片》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

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

Head Rush Ajax

Head Rush Ajax

Brett McLaughlin、Eric Freeman、Elisabeth Freeman / O'Reilly Media, Inc. / 2006-03-01 / USD 34.99

Ajax, or Asynchronous JavaScript and XML, is a term describing the latest rage in web development. Ajax is used to create interactive web applications with XML-based web services, and using JavaScript......一起来看看 《Head Rush Ajax》 这本书的介绍吧!

图片转BASE64编码
图片转BASE64编码

在线图片转Base64编码工具

随机密码生成器
随机密码生成器

多种字符组合密码

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

HEX HSV 互换工具