golang 中的 []string 和 ...string 有什么区别?
技术问答
456 人阅读
|
0 人回复
|
2023-09-11
|
在 Go 语言中,
: v. d, g; u4 [[]string 是字符串数组( p$ a4 n. g, k7 u! S: h0 x
我们也...string用作参数。
. ^% E- b" I. T有什么区别?
) { k6 m6 o. i, \4 R函数定义:4 ]' Y: l' c! w- A
func f(args ...string) {}
1 X* u$ f" E5 a2 t 我能像下面这样调用这个函数吗?& T6 }+ V8 Y! b* e6 ~4 J
args := []string{"a","b"}f(args)2 \3 y3 h* g" h V
' ^% y" }: V) l7 ^
解决方案: & o* t$ S: j0 k" `8 ]* u G4 D
[]string 是字符串数组
/ y7 B6 m* u3 J* @6 o% Y0 O" J从技术上讲,它是引用底层数组的切片; w( C& ]9 u3 z# Y$ l' d
我们也...string用作参数。( N/ b; [ v5 d# R% `+ c
有什么区别?
- b: o; a/ z* m- x至于结构,真的没什么。两种语法产生相同类型的数据。/ l- @8 G" T' Q+ _
该...参数语法形成可变参数参数。它将接受零或多个string并引用它们作为切片。
0 D/ u3 \7 g* S" R' t6 p- U5 i关于调用f,您可以使用以下语法将字符串传输到可变参数中:
7 i R( D4 U) U5 F2 m5 ofunc f(args ...string) fmt.Println(len(args))}args := []string{"a","b"}f(args...)
# c9 W1 {; x! C4 [ 该语法可用于使用文本语法构建的切片,或表示可变参数的切片(因为它们之间没有区别)。 |
|
|
|
|
|