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

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

内容简介:本片将分享如何将多个字符串连接成一个字符串,并将给定的字符串作为分隔符。一个真实的用例是动态构建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基础库之使用分隔符连接字符串切片》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

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

iOS编程实战

iOS编程实战

[美] Rob Napier、[美] Mugunth Kumar / 美团移动 / 人民邮电出版社 / 2014-9 / 79.00元

本书深入介绍iOS 7新特性和新功能,涵盖iOS 7大部分新增特性,包括新的后台操作、Core Bluetooth、UIKit动力学以及TextKit。另外还介绍了如何处理新的扁平化UI,并新增了一章你可能不知道的“小技巧”。如果读者熟练掌握C和C++,读完本书即可创建性能优异的iPhone、iPad和iPod touch应用。 本书主要内容包括:  iOS 7新特性和新功能概览; ......一起来看看 《iOS编程实战》 这本书的介绍吧!

HTML 编码/解码
HTML 编码/解码

HTML 编码/解码

XML 在线格式化
XML 在线格式化

在线 XML 格式化压缩工具

RGB HSV 转换
RGB HSV 转换

RGB HSV 互转工具