回答

收藏

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 o
    func f(args ...string)    fmt.Println(len(args))}args := []string{"a","b"}f(args...)
    # c9 W1 {; x! C4 [
该语法可用于使用文本语法构建的切片,或表示可变参数的切片(因为它们之间没有区别)。
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则