假设一个函数接受一个字符串数组:
func Join(strs []string) {
     ...
}
我有一个字符串:
a := "y'all ain't got the honey nut?"
如何将该字符串转换为数组?
假设一个函数接受一个字符串数组:
func Join(strs []string) {
     ...
}
我有一个字符串:
a := "y'all ain't got the honey nut?"
如何将该字符串转换为数组?
您可以使用以下约定创建一个项目的切片:
a := "y'all ain't got the honey nut?"
singleItemArray := []string{a}
strings.Join(singleItemArray);
[]string{"string"}正如 miltonb 所说,您的问题的实际答案很简单。
但我想指出的是,在 Go 中编写和使用可变参数函数是多么容易,一个具有可变数量参数的函数。
您可以将函数的签名更改为F(a ...string). 然后,a是函数中的切片F,你可以像F("a")and一样调用它F("a", "b")。当你实际上有一个切片或数组时,你可以通过调用将它传递给 F F(a...)。
不确定这种语法是否适合你的工作,但我想让你知道它是一种选择。
措辞的问题实际上引用了数组和切片。问题文本是关于一个数组的,代码是使用切片来说明的。因此,隐含了两个问题;传递单个项目切片,并传递单个项目数组。
一个数组:  var a [1]string
一个切片:var s []string 
将单个项目切片传递给函数:
func SliceFunc( slc []string) {
    fmt.Println(slc)
}
func main() {
    a := "stringy"
    SliceFunc( []string{a} )
    // or an actual array to the same function
    b := [...]string { "thingy" }
    SliceFunc( []string{b[0] )  
}
将单个项目数组传递给函数。
这里有一个问题,因为数组具有固定长度,并且作为函数的参数,它不能接受不同长度的数组,所以我们只剩下灵活性有限的工作函数:
func ArrayFunc( arr [1]string) {
    fmt.Println(slc)
}
func main() {
    var a [1]string
    a[0] = "stringy"
    ArrayFunc( a )  
}
似乎坚持切片的泛化是一种更灵活的解决方案。
(如果您想了解更多关于切片和数组的信息,请参见 Andrew Gerrand 的一篇博客,其中介绍了切片的使用和内部结构。)
您可以使用append或make:
package main
import "fmt"
func main() {
   {
      var a []string
      a = append(a, "north")
      fmt.Println(a)
   }
   {
      a := make([]string, 1)
      a[0] = "north"
      fmt.Println(a)
   }
}