这个程序是做不同的计算。现在它只对主要给出的两个数字进行基本操作,我尝试升级它来计算超过2个数字,更像是未知数量的输入中给出的数字。
package main
import (
"fmt"
)
func add (n int , m int) int {
sum := n + m
return sum
}
func sub (n int , m int) int {
diff := n - m
return diff
}
func mul (n float32 , m float32) float32 {
pro := n * m
return pro
}
func div (n float32 , m float32) float32 {
quo := n / m
return quo
}
func main() {
fmt.Println(add(4,6))
fmt.Println(sub(4,6))
fmt.Println(mul(4,6))
fmt.Println(div(6,4))
}
答案 0 :(得分:2)
您可以使用...
来接受仲裁的仲裁数量,
这是你的程序将如何
package main
import (
"fmt"
)
func add(m ...int) int {
sum := 0
for _, i := range m {
sum += i
}
return sum
}
func sub(m ...int) int {
sub := m[0]
for _, i := range m[1:] {
sub -= i
}
return sub
}
func mul(m ...float32) float32 {
c := float32(1)
for _, i := range m {
c *= i
}
return c
}
func div(m ...float32) float32 {
quo := m[0]
for _, i := range m[1:] {
quo /= i
}
return quo
}
func main() {
fmt.Println(add(4, 6))
fmt.Println(sub(4, 6))
fmt.Println(mul(4, 6))
fmt.Println(div(6, 4))
}
答案 1 :(得分:0)
你的问题不太清楚,所以我要做一些假设。我假设你想要一些可以返回add(1, 2, 3)
的{{1}}。
有两种方法可以使用切片或使用1 + 2 + 3
参数类型。 (请参阅Go specifications)。
使用切片的实现将接受一片数字,然后使用迭代方法对切片执行操作。例如,对于添加功能:
...T
然后您可以将其称为func add(numbers []int) int {
sum := 0
for _, number := range numbers {
sum += number
}
return sum
}
,它将返回1 + 2 + 3的结果。
使用add([]int{1, 2, 3})
参数类型几乎相同,因为它基本上将多个参数转换为切片。
...T
除了呼叫它变得不同。要么:func add(numbers ...int) int {
sum := 0
for _, number := range numbers {
sum += number
}
return sum
}
,要么仍然想要使用切片,add(1, 2, 3)
。
您应该能够将这些概念应用于其他操作。