公子堇 2019-04-24 14:37 采纳率: 0%
浏览 392

关于gomobile bind方法生成.aar文件过程中go 函数返回多个值的问题

如图:

图片说明
提示我函数只能有零个或一个返回值,但是Go函数里这个函数是必要的,那么有没有什么方法解决这个问题呢?还是必须修改go函数?

  • 写回答

1条回答 默认 最新

  • 你知我知皆知 2024-08-09 03:03
    关注

    以下回答参考 皆我百晓生券券喵儿 等免费微信小程序相关内容作答,并由本人整理回复。

    这个问题是由Go语言的语法特性所引起的。在Go中,函数可以返回任意数量的结果值,而不需要强制返回0或1个结果。这是因为Go使用了“零值”和“空值”来表示没有返回任何值。

    然而,在某些情况下,你可能希望你的函数只返回特定的数量(例如,一个整数)作为结果。为了实现这一点,你可以使用return语句来指定要返回的结果类型。例如:

    func big.Ad(x int, y int, z int) (result int) {
        // 在这里添加逻辑以计算结果
        result = x + y + z
    
        // 返回结果
        return result
    }
    

    这将确保函数只返回一个整数值作为结果,并且它总是包含在这个列表中。如果你的函数只有一个结果,则可以省略return语句。

    如果你确实需要处理多个结果,你应该考虑是否需要将它们合并到一个结构体或者容器中,然后返回那个结构体或者容器。这样,你就可以控制如何存储和处理这些结果。例如:

    type Result struct {
        Value1 int
        Value2 int
        Value3 int
    }
    
    func big.Ad(x int, y int, z int) Result {
        result := Result{
            Value1: x,
            Value2: y,
            Value3: z,
        }
    
        return result
    }
    

    现在,函数可以返回一个Result类型的结构体,其中包含了三个整数。你可以在外部程序中解析这个结构体,或者使用其他方式来管理这些结果。

    评论

报告相同问题?

悬赏问题

  • ¥15 能给我一些人生建议吗
  • ¥15 mac电脑,安装charles后无法正常抓包
  • ¥18 visio打开文件一直显示文件未找到
  • ¥15 请教一下,openwrt如何让同一usb储存设备拔插后设备符号不变?
  • ¥30 使用quartz框架进行分布式任务定时调度,启动了两个实例,但是只有一个实例参与调度,另外一个实例没有参与调度,不知道是为什么?请各位帮助看一下原因!!
  • ¥50 怎么获取Ace Editor中的python代码后怎么调用Skulpt执行代码
  • ¥30 fpga基于dds生成幅值相位频率和波形可调的容易信号发生器。
  • ¥15 R语言shiny包和ncdf4包报错
  • ¥15 origin绘制有显著差异的柱状图和聚类热图
  • ¥20 simulink实现滑模控制和pid控制对比,提现前者优势