Go 这是一个计算器程序,如何对未知数量的输入进行编码?

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

这个程序要做不同的计算。现在它只对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 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)的命令。你知道怎么做吗@萨拉斯