我需要一个示例,在bookName数组中的每个bookName之后添加(分号),并将最后一个分号更改为(and), 我所拥有的是{“我为你”,“堕落”,“地狱”} 结果,我需要的是(我是为了你,堕落和地狱)
答案 0 :(得分:1)
对,所以这确实很简单(正如我在评论中所说):
books := []string{"title 1", "title 2", "title 3"}
list := fmt.Sprintf(
"%s and %s",
strings.Join(books[:len(books)-1], ", "), // join all elements with , excluding last one|
books[len(books)-1], // last element in slice
)
工作原理:
strings.Join
是标准软件包strings
的一部分,该软件包执行您自己的impode
函数的功能。不需要自己写books[:len(books)-1]
“创建” 一个新切片,其中包含原始切片中的所有元素,但最后一个元素除外。您想要的是将这些元素与逗号连接。您只需要在此元素和切片中的最后一个元素之间使用and
位。books[len(books)-1]
获取切片中的最后一个元素fmt.Sprintf("%s and %s"
:这将创建一个字符串,其中第一部分是由strings.Join
创建的逗号分隔列表,第二部分是切片中的最后一个元素。这总共产生"title 1, title 2 and title 3"