Lua - 我如何从另一个脚本中使用函数?
2012-1-10 13:17:11
收藏:0
阅读:111
评论:3
我一直在寻找方法,但我没有找到任何适合我的解决方案。我正开始学习 Lua,所以我正在尝试制作一个简单的计算器。我已经将每个单独的操作放在不同的程序中,但当我尝试将它们组合起来时,我无法让它正常工作。我的脚本如下:
require "io"
require "operations.lua"
do
print ("Please enter the first number in your problem.")
x = io.read()
print ("Please enter the second number in your problem.")
y = io.read()
print ("Please choose the operation you wish to perform.")
print ("Use 1 for addition, 2 for subtraction, 3 for multiplication, and 4 for division.")
op = io.read()
op = 1 then
function addition
op = 2 then
function subtraction
op = 3 then
function multiplication
op = 4 then
function division
print (answer)
io.read()
end
我的 operations.lua 脚本如下:
function addition
return answer = x+y
end
function subtraction
return answer = x-y
end
function multiplication
return answer = x*y
end
function division
return answer = x/y
end
我尝试过使用下面的代码:
if op = 1 then
answer = x+y
print(answer)
if op = 2 then
answer = x-y
print(answer)
然后我按照每个操作完成了这项工作。但它没起作用。我甚至无法得到返回的错误代码,因为它关闭得太快了。我应该怎么办?
原文链接 https://stackoverflow.com/questions/8803862
点赞
stackoverflow用户7625
在您的示例中,进行以下更改:在不带扩展名的情况下要求 operations.lua
。在您的 operations
函数定义中包括参数。直接返回操作表达式,而不是返回 answer = x+y
之类的语句。
全部代码:
操作 operations.lua
的代码:
function addition(x,y)
return x + y
end
--more functions go here...
function division(x,y)
return x / y
end
托管 Lua 脚本的代码:
require "operations"
result = addition(5,7)
print(result)
result = division(9,3)
print(result)
一旦您使其正常工作,尝试重新添加您的 io
逻辑。
请记住,由于其编码方式,您的函数将在全局范围内定义。为了避免污染全局表,请将 operations.lua
定义为模块。请查看 lua-users.org 模块教程。
2012-01-10 15:26:01
stackoverflow用户934599
正确的 if-then-else
语法:
if op==1 then
answer = a+b
elseif op==2 then
answer = a*b
end
print(answer)
之后:请检查正确的函数声明语法。
之后:return answer=x+y
是错误的。如果你想设置 answer
的值,不要用 return
。如果你想返回两数之和,请使用 return x+y
。
我认为你应该查看 Programming in Lua。
2012-01-10 15:28:24
评论区的留言会收到邮件通知哦~
推荐文章
- 如何在roblox studio中1:1导入真实世界的地形?
- 求解,lua_resume的第二次调用继续执行协程问题。
- 【上海普陀区】内向猫网络招募【Skynet游戏框架Lua后端程序员】
- SF爱好求教:如何用lua实现游戏内调用数据库函数实现账号密码注册?
- Lua实现网站后台开发
- LUA错误显式返回,社区常见的规约是怎么样的
- lua5.3下载库失败
- 请问如何实现文本框内容和某个网页搜索框内容连接,并把网页输出来的结果反馈到另外一个文本框上
- lua lanes多线程使用
- 一个kv数据库
- openresty 有没有比较轻量的 docker 镜像
- 想问一下,有大佬用过luacurl吗
- 在Lua执行过程中使用Load函数出现问题
- 为什么 neovim 里没有显示一些特殊字符?
- Lua比较两个表的值(不考虑键的顺序)
- 有个lua简单的项目,外包,有意者加微信 liuheng600456详谈,最好在成都
- 如何在 Visual Studio 2022 中运行 Lua 代码?
- addEventListener 返回 nil Lua
- Lua中获取用户配置主目录的跨平台方法
- 如何编写 Lua 模式将字符串(嵌套数组)转换为真正的数组?
首先,学习使用命令行,这样你就可以看到错误(在 Windows 上是
cmd.exe
)。第二,在第二行中将代码更改为
require("operations")
。以你的方式进行,则解释器期望有一个名为operations
的目录,该目录下具有一条基础脚本lua.lua
。