

[Select single argument from all arguments of variadic
function.](https://www.golangprograms.com/go-language/variadic-functions.html)
セクションにある、次のパラグラフの意味が分かる方、ご教示願えれば幸いです。

> Needs to be precise when running an empty function call, if the code inside
> of the function expecting an argument and absence of argument will generate
> an error "panic: run-time error: index out of range". In above example you
> have to pass at least 4 arguments.

問題は、最初のセンテンスです。In above ... は自明です。  
an empty function call とは、「引数を与えない関数呼び出し」の意味だろうと思います。

以上、よろしくお願いいたします。


CC BY-SA 4.0
2022-02-02T06:13:22.637
86092
2022-03-22T22:50:26.077
2022-02-07T16:49:12.690
3060
51211
question
go
「golang programs」というチュートリアルサイトの「Variadic Functions」に関する段落が理解できない


それでは実際に実行してみましょう。

<https://go.dev/play/p/omWI1XFl5RE>

[code]

    package main
    
    import "fmt"
    
    func main() {
        variadicExample()
    }
    
    func variadicExample(s ...string) {
        fmt.Println(s[0])
        fmt.Println(s[3])
    }
    
[/code]

**実行結果**

[code]

    panic: runtime error: index out of range [0] with length 0
    
    goroutine 1 [running]:
    main.variadicExample({0x0, 0x485320, 0xc0000001a0})
        /tmp/sandbox399561776/prog.go:10 +0xef
    main.main()
        /tmp/sandbox399561776/prog.go:6 +0x25
    
    Program exited.
    
[/code]


CC BY-SA 4.0
2022-02-02T06:50:45.110
86093
2022-02-07T05:35:14.880
2022-02-07T05:35:14.880
29826
47127
86092
answer


まず、サンプルコードには、このように書かれています。  
variadicExample は、可変長引数受け取れるようになっていますが、実装は、1つ目と4つ目の引数の値を標準出力に表示する処理になっています。

[code]

    package main
    
    import "fmt"
    
    func main() {
        variadicExample("red", "blue", "green", "yellow")
    }
    
    func variadicExample(s ...string) {
        fmt.Println(s[0])
        fmt.Println(s[3])
    }
    
[/code]

質問戻りますが、メソッドのインプットでは、可変長引数になっているのに実装は最低限４つの引数が必要となっているため、例えばひとつもパラメータを与えないと
panic を起こしますということが書かれています。  
※例としてひとつもパラメータをケースが書かれていますが、実装を見る限り２つないし、3つでもpanicは発生します

> Needs to be precise when running an empty function call, if the code inside
> of the function expecting an argument and absence of argument will generate
> an error "panic: run-time error: index out of range". In above example you
> have to pass at least 4 arguments.


CC BY-SA 4.0
2022-03-22T22:50:26.077
87968
2022-03-22T22:50:26.077
7266
86092
answer