LUACN论坛

 找回密码
 加入我们

QQ登录

只需一步,快速开始

搜索
热搜: YJWOW MagicStone BoL
12
返回列表 发新帖
楼主: 飞扬

[wowbee] return 这个函数到底有什么用啊?

 关闭 [复制链接]
发表于 2024-4-27 15:05:18 | 显示全部楼层
lulin155 发表于 2024-4-27 02:08 PM
我笑了!你还是去都学学LUA 基础吧   去把你代码执行一遍再来说话!  基本的运算你都没理解

你奥术飞 ...

自己看区别,犟的很,非得啪啪打你脸才舒服

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?加入我们

x
回复 支持 反对

使用道具 举报

发表于 2024-4-27 19:51:20 来自手机 | 显示全部楼层
哈哈哈 好好看题目  没读懂就装   我也没精力和你辩驳!不在一个频道 你继续做舔狗 告辞!
回复 支持 反对

使用道具 举报

发表于 2024-4-28 09:18:47 | 显示全部楼层
lulin155 发表于 2024-4-26 12:50 PM
不懂就别瞎几把教别人  

在函数末尾放置return可以方便地处理错误情况。如果函数执行过程中遇到错误, ...

return的意义是退出当前栈= =
或者说退出当前代码域= =
当然我不是说非要来纠正你
只是单纯的提醒下注意语气
技术交流可以更和谐一点
回复 支持 反对

使用道具 举报

发表于 2024-4-28 09:20:05 | 显示全部楼层
blxyz521 发表于 2024-4-27 01:28 PM
不懂就别瞎几把教别人  
6楼版主说的才是对的“return除了返回值外,还有终止执行语句的作用”。

return的意义是退出当前栈= =
或者说退出当前代码域= =
当然我不是说非要来纠正你
只是单纯的提醒下注意语气
技术交流可以更和谐一点
回复 支持 反对

使用道具 举报

发表于 2024-4-28 09:52:18 | 显示全部楼层
看到一位桩径失败 啪啪打脸了
回复 支持 反对

使用道具 举报

发表于 2024-4-28 10:36:07 | 显示全部楼层
vshrd 发表于 2024-4-28 09:20 AM
return的意义是退出当前栈= =
或者说退出当前代码域= =
当然我不是说非要来纠正你

本来就是很基础的东西,而且基本上编程语言都有这个东西,多用点就能明白return的作用。同意V大的说法,技术交流和谐点会更好
回复 支持 反对

使用道具 举报

发表于 2024-4-28 16:33:51 | 显示全部楼层
vshrd 发表于 2024-4-28 09:20 AM
return的意义是退出当前栈= =
或者说退出当前代码域= =
当然我不是说非要来纠正你

那是复制他的,我就是看他语气不好才怼一下,要不然谁管他是对还是错。
回复 支持 反对

使用道具 举报

发表于 2024-4-29 18:04:32 | 显示全部楼层
本帖最后由 吾奶常煽赵子龙 于 2024-4-29 06:06 PM 编辑

一个简单的return还引得大家吵得不可开交,和谐和谐。

其实很简单的,return有两个功能:

第一个,结束所在函数的运行,直接退出该函数
[Lua] 纯文本查看 复制代码
local function test()
    print("2")
    print("3")
end

local function main()
    print("1")
    
    test()
    
    print("4")
end

main()

上面没有加return,将打印:
1
2
3
4
如果在test函数中加一个return,如:
[Lua] 纯文本查看 复制代码
local function test()
    print("2")
    
    -- test函数执行到这里就直接退出该函数了,该函数的后续代码将不会被执行
    -- 这里是直接return,正常情况下一般是满足某个条件再return
    return 
    
    print("3")
end

local function main()
    print("1")
    
    test()
    
    print("4")
end

main()

上面代码将打印:
1
2
4
return只会影响它所在的函数,不会影响其他函数。


第二个,设置函数返回值。
lua函数都是有返回值的,如果没有return,函数执行结束后会返回一个nil,如果想要返回我们自己想要的数据,就需要用到return,比如返回一个字符串:
[Lua] 纯文本查看 复制代码
local function test()
    print("2")
    print("3")

    -- 这里返回了一个字符串
    return "asdasdasd"
end


至于加不加return,什么时候加return,就要看函数的具体逻辑了。
回复 支持 反对

使用道具 举报

发表于 2024-5-1 20:32:47 | 显示全部楼层
老久没上,我给你一个比较不权威的解释。
最早的wowbee是模拟按键。参考这个贴子https://blog.sina.com.cn/s/blog_5749d3bc01012z5h.html
他会让f12一直动态改变你call的宏,放你的需要的技能。
所以wowbee的脚本就是这种
if 判断条件 then
run(某个技能)
return
end
的格式。run的时候就会把对应的技能通过生成”/cast技能名称的字符串“ 发到f12这个宏位置上。
如果不写return并同时存在多个满足条件的技能,因为魔兽自己还存在施法队列先后的问题,在这个刷新宏text的机制下,可能会卡掉其中某一个满足条件技能的施法(当时亲测),会导致脚本卡住或者其中的某个技能根本放不出来。
不过你们现在私服用的解锁版本wowbee,不存在这个问题。 放技能都是走的魔兽的api,加上这个脚本是在wowbee的循环里运行的。return什么都没有意义,大多数情况是可以不写的。 如果发现卡技能,再加上也可以。
当然加上是最好的,这样脚本看起来比较整齐、专业。可以最大层面上避免奇怪的卡技能错误。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 加入我们

本版积分规则

小黑屋|手机版|Archiver|LUACN论坛

GMT+8, 2024-5-20 10:29 AM , Processed in 0.066576 second(s), 26 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表