「已注销」 2023-02-13 12:47 采纳率: 20%
浏览 14

最后一行call为啥运行不了?

local String = {}

function String:get2(a, b)
return a + b
end

function String:get(a,b, func)
return func(a,b)
end

print(String:get(1, 2, String:get2 ))

  • 写回答

1条回答 默认 最新

  • ghost2003888221 2023-02-13 13:58
    关注

    print(String:get(1, 2, String:get2 )) 这行代码中传递给 String:get 函数的第三个参数是错误的。您传递的是 String:get2,它是一个方法,而不是一个函数。需要将它更改为正确的函数,例如:

    print(String:get(1, 2, String.get2))
    
    
    

    这样,第三个参数就是正确的函数,代码将正确运行。

    评论

报告相同问题?

问题事件

  • 创建了问题 2月13日

悬赏问题

  • ¥15 高通uboot 打印ubi init err 22
  • ¥20 PDF元数据中的XMP媒体管理属性
  • ¥15 R语言中lasso回归报错
  • ¥15 网站突然不能访问了,上午还好好的
  • ¥15 有没有dl可以帮弄”我去图书馆”秒选道具和积分
  • ¥15 semrush,SEO,内嵌网站,api
  • ¥15 Stata:为什么reghdfe后的因变量没有被发现识别啊
  • ¥15 振荡电路,ADS仿真
  • ¥15 关于#c语言#的问题,请各位专家解答!
  • ¥15 这个如何解决详细步骤