2 回答

TA貢獻(xiàn)1827條經(jīng)驗(yàn) 獲得超4個(gè)贊
在數(shù)學(xué)和計(jì)算機(jī)編程中,可變參數(shù)函數(shù)是一種不定數(shù)量的函數(shù),即接受可變數(shù)量的參數(shù)的函數(shù)。
您的函數(shù)簽名稍微不正確。
func?findMaximum(args?...[]int)?[]int
這表示findMaximum
接受可變數(shù)量的int
切片作為參數(shù)并返回一個(gè)int
切片。您試圖解決的問(wèn)題是要求接受可變數(shù)量的參數(shù)并返回所提供集合中最大的int
單數(shù)。int
調(diào)用你的函數(shù)看起來(lái)像這樣:
largest?:=?findMaximum([]int{1,?2,?3},?[]int{4,?5,?6},?[]int{7,?8,?9})
在這種情況下,largest
的類型[]int
表明該函數(shù)int
以切片的形式返回多個(gè)值。這是沒(méi)有意義的,因?yàn)閼?yīng)該只有一個(gè)最大值(假設(shè)沒(méi)有重復(fù)項(xiàng))。
您需要一個(gè)如下所示的函數(shù)簽名:
func?findMaximum(args?...int)?int
調(diào)用這個(gè)函數(shù)看起來(lái)像這樣:
largest?:=?findMaximum(1,?2,?3,?4,?5,?6,?7,?8,?9)
...或者如果你的數(shù)字在一個(gè)切片中:
nums?:=?[]int{1,?2,?3,?4,?5,?6,?7,?8,?9} largest?:=?findMaximum(nums...)
在這種情況下,largest
將是 類型int
,這是您在此問(wèn)題中尋找的正確返回值。
祝你好運(yùn)!

TA貢獻(xiàn)1829條經(jīng)驗(yàn) 獲得超9個(gè)贊
如果您通過(guò)https://play.golang.org/運(yùn)行代碼,您將看到一些語(yǔ)法錯(cuò)誤。下面是在切片中找到最大值的正確版本。...
正如您所注意到的,切片參數(shù)調(diào)用中有額外的內(nèi)容。
package main
import (
"fmt"
)
func findMaximum(args []int) int {
max := args[0]
for _, v := range args {
if v > max{
max = v
}
}
return max
}
func main() {
x := []int{
48, 96, 86, 68,
57, 82, 63, 70,
37, 34, 83, 27,
19, 97, 9, 17,
}
fmt.Println(findMaximum(x))
}
- 2 回答
- 0 關(guān)注
- 193 瀏覽
添加回答
舉報(bào)