Go 这是一个计算器程序,如何对未知数量的输入进行编码?
这个程序要做不同的计算。现在它只对main中给出的两个数字进行基本运算,我正在尝试将它升级为计算2个以上的数字,更类似于输入中给出的未知数字Go 这是一个计算器程序,如何对未知数量的输入进行编码?,go,calculator,Go,Calculator,这个程序要做不同的计算。现在它只对main中给出的两个数字进行基本运算,我正在尝试将它升级为计算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 mu
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))
}
您可以使用
…
接受任意数量的辩论,
下面是你的计划将是怎样的
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,2,3)
的操作,该操作将返回1+2+3
有两种方法可以做到这一点,要么使用切片,要么使用…T
参数类型。(请参阅)
使用切片的实现将接受一个数字切片,然后使用迭代方法对该切片执行操作。例如,对于add函数:
func add(numbers []int) int {
sum := 0
for _, number := range numbers {
sum += number
}
return sum
}
然后可以像add([]int{1,2,3})
那样调用它,它将返回1+2+3的结果
使用…T
参数类型几乎相同,因为它基本上将多个参数转换为一个切片
func add(numbers ...int) int {
sum := 0
for _, number := range numbers {
sum += number
}
return sum
}
除了叫它变得不同。或者:add(1,2,3)
或者如果您仍然想使用切片,add([]int{1,2,3}…)
您应该能够将这些概念应用于其他操作。可能重复的@SenjutiMahapatra@Akshay可能重复的问题不是如何编写计算器。问题是如何在
go
函数中接受任意数量的参数“go run filename.go”命令编译并运行程序,但是我找不到一个只编译代码并提供可执行文件(.exe)的命令。你知道怎么做吗@萨拉斯