我正在尝试打印函数中执行的计算结果
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的新手,所以不确定自己缺少什么吗?任何帮助,不胜感激..
答案 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))