最后一行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 ))

local String = {}

get2 = function(a, b)
    return a + b
end

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

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

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

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


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