使用cobra命令实现Go接口

使用cobra命令实现Go接口,go,interface,go-cobra,Go,Interface,Go Cobra,我用Go语言编写了一个计算基本算术函数的程序 我想用COBRA命令做同样的事情。这是 我还使用cobra命令实现了算术函数 没有接口 这是在不使用接口概念的情况下使用cobra命令的补充,我想使用cobra命令实现同样的功能 package cmd import ( "fmt" "github.com/spf13/cobra" "os" "strconv" ) func addCmd() *cobr

我用Go语言编写了一个计算基本算术函数的程序

我想用COBRA命令做同样的事情。这是

我还使用
cobra
命令实现了算术函数 没有接口

这是在不使用接口概念的情况下使用cobra命令的补充,我想使用cobra命令实现同样的功能

package cmd

    import (
        "fmt"

        "github.com/spf13/cobra"

        "os"

        "strconv"
    )

    func addCmd() *cobra.Command {
        var input int
        c := &cobra.Command{
            Use:   "add",
            Short: "Addition value of given Numbers",

            Run: func(cmd *cobra.Command, args []string) {
                if len(args) != input {
                    fmt.Println(fmt.Sprintf("You need to provide %v number to sum up", input))
                    os.Exit(1)
                }
                numbers := make([]int, input)
                for i := 0; i < input; i++ {
                    num, _ := strconv.Atoi(args[i])
                    numbers[i] = num
                }
                sum := 0
                for _, numbers := range numbers {
                    sum += numbers
                }
                fmt.Println("The Sum :", sum)
            },
        }
        c.Flags().IntVar(&input, "input", 0, "Number of input")
        return c
    }

    func init() {

        cmd := addCmd()
        RootCmd.AddCommand(cmd)

    }
package cmd
进口(
“fmt”
“github.com/spf13/cobra”
“操作系统”
“strconv”
)
func addCmd()*cobra.Command{
变量输入整型
c:=&cobra.Command{
使用:“添加”,
简写:“给定数字的加法”,
Run:func(cmd*cobra.Command,args[]字符串){
如果len(args)!=输入{
fmt.Println(fmt.Sprintf(“您需要提供%v数字进行汇总”,输入))
操作系统退出(1)
}
数字:=生成([]整数,输入)
对于i:=0;i

有人能帮我解决界面和cobra命令的问题吗。

请准确说明您遇到的困难以及您尝试了什么。我想用cobra中接口的概念来实现一个计算器。我想实现一个叫做加法、减法、乘法、除法运算的方法。我已经用go语言实现了,但是我不知道如何用cobra命令来实现,我应该用另一个命令来实现吗?我不知道你所说的“Cobra中的接口概念”。您是否正在尝试使所有命令都成为接口?如果是,原因是什么?此外,添加命令的方式也不是很好的做法。您应该在函数外部定义命令,并将其绑定到init()中的RootCmd,而不是使用静态函数创建并返回addition命令直接。
var addition=&cobra.Command{…}
func init(){RootCmd.AddCommand(addition)}
请准确说明您遇到的困难以及您尝试过什么。我想使用cobra中的接口概念来实现计算器。我想实现一种称为加法、减法、乘法、除法运算的方法。我用go语言完成了这项工作,但我不知道如何使用cobra命令来完成,我应该怎么做我不知道你所说的“Cobra中的接口概念”是什么意思。“您正在尝试创建所有命令界面吗?如果是,为什么?另外,添加命令的方式不是好的做法。您应该在函数外部定义命令,并将其直接绑定到init()中的RootCmd,而不是创建并返回addition命令的静态函数<代码>变量添加=&cobra.Command{…}
func init(){RootCmd.AddCommand(addition)}
package cmd

    import (
        "fmt"

        "github.com/spf13/cobra"

        "os"

        "strconv"
    )

    func addCmd() *cobra.Command {
        var input int
        c := &cobra.Command{
            Use:   "add",
            Short: "Addition value of given Numbers",

            Run: func(cmd *cobra.Command, args []string) {
                if len(args) != input {
                    fmt.Println(fmt.Sprintf("You need to provide %v number to sum up", input))
                    os.Exit(1)
                }
                numbers := make([]int, input)
                for i := 0; i < input; i++ {
                    num, _ := strconv.Atoi(args[i])
                    numbers[i] = num
                }
                sum := 0
                for _, numbers := range numbers {
                    sum += numbers
                }
                fmt.Println("The Sum :", sum)
            },
        }
        c.Flags().IntVar(&input, "input", 0, "Number of input")
        return c
    }

    func init() {

        cmd := addCmd()
        RootCmd.AddCommand(cmd)

    }