Lua-打印函数计算结果

时间:2018-07-25 09:36:11

标签: lua

我正在尝试打印函数中执行的计算结果

local celsiustemp = 37.5

local function toFahrenheit(c)
return c * 9 / 5 + 32
end

toFahrenheit(celsiustemp)

print("Temp in Celsius = '" .. toFahrenheit )

产生的错误如下。

  

lua:将c转换为f.lua:9:尝试连接函数值   (本地'toFahrenheit')堆栈回溯:将c转换为f.lua:9:在main   块[C]:在?

我是Lua的新手,所以不确定自己缺少什么吗?任何帮助,不胜感激..

2 个答案:

答案 0 :(得分:1)

每次调用函数都会返回该值,因此您必须将函数结果存储到变量中,或者在print函数本身内调用函数:

local ftemp = toFahrenheit(celsiustemp)
print(celsiustemp .. " in fahrenheit: " .. ftemp)

另外,您可能想了解有关函数调用的更多信息,因为这通常是所有编程语言都使用的相同方法;就像返回值的数学函数一样,但是您必须将该值存储在某个地方,或者可以像在打印函数中一样直接使用它。

答案 1 :(得分:0)

您接近了!试试:

local celsiustemp = 37.5

local function toFahrenheit(c)
    return c * 9 / 5 + 32
end

print("Temp in Fahrenheit = " .. toFahrenheit(celsiustemp))

错误消息表明您是在串联函数本身(不能这样做),而不是函数的结果,即实际调用它时得到的结果(即,使用())。换句话说:

不能:

print("Temp in Fahrenheit = " .. toFahrenheit)

但是您可以:

print("Temp in Fahrenheit = " .. toFahrenheit(celsiustemp))