找回密码
 点一下
查看: 3357|回复: 7

return 和 returns

[复制链接]
发表于 2007-12-4 22:42:42 | 显示全部楼层 |阅读模式
我初学JASS 不太懂return是什么意思 问了个会PASS卡的同学 他打了个比喻:就是借一个东西放里面去搞 出来和原来一样的 用了retuen后出来就是搞完的样子(推出) .恩 我明白了 这比教程上的返回好理解多了 但是他说PASS卡里没有returns这东西 请问return 和 returns 的区别 分别作用?
发表于 2007-12-4 23:10:53 | 显示全部楼层
把一个当成修饰词,一个当成动词吧.
returns是一个修饰词,用来修饰一个函数的返回值是什么样的.
return是一个动词,是把什么什么返回.

把函数想成一个摸奖机,  这个returns就是奖品了.
return手机        就是给你一个手机
return null        就是啥也没得着
return MP4       就是给一个MP4

而手机,Mp4,或是啥也没有的null,都是奖品.
回复

使用道具 举报

发表于 2007-12-5 12:35:02 | 显示全部楼层
return 或 returns 都只是jass的语法,人家规定是这样,不存在“为什么”的问题。你的同学有点死读书了吧? 呵呵。
回复

使用道具 举报

发表于 2007-12-5 12:53:52 | 显示全部楼层
就是两个不同的关键字罢了。。换成代号ABC也一样的,用有意义的词比较易懂。
回复

使用道具 举报

发表于 2007-12-5 15:09:26 | 显示全部楼层
实际上function xxx takes aaa returns bbb

就和c,java里面的bbb func(aaa)一个意思。。
回复

使用道具 举报

发表于 2007-12-9 15:08:23 | 显示全部楼层
简单点说吧~
mov eax, Value
ret
把值传递给eax寄存器
然后直接跳转到堆栈的栈顶
无论怎样,Value都只能是一个双字值
至于那个类型,只是双字改个名字
回复

使用道具 举报

发表于 2007-12-10 16:31:24 | 显示全部楼层
引用第5楼havonz于2007-12-09 15:08发表的  :
简单点说吧~
mov eax, Value
ret
把值传递给eax寄存器
然后直接跳转到堆栈的栈顶
.......

连汇编都出来了………………

function申明里的takes后面的是传参,returns后面的是返回类型,return则是返回参数
回复

使用道具 举报

发表于 2009-10-7 15:45:55 | 显示全部楼层
function *** takes *** returns ***
      ***
    return **
endfunction
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 点一下

本版积分规则

Archiver|移动端|小黑屋|地精研究院

GMT+8, 2024-4-27 20:37 , Processed in 0.137626 second(s), 18 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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