设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 3228|回复: 15
打印 上一主题 下一主题

return的意思

 关闭 [复制链接]

Lv1.梦旅人

蚂蚁卡卡

梦石
0
星屑
116
在线时间
66 小时
注册时间
2007-12-16
帖子
3081
跳转到指定楼层
1
发表于 2009-6-8 23:34:58 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
def move
    if @wait_count > 0
       @wait_count -= 1
      return
    end
……

初始化里@wait_count = 5

问: if @wait_count > 0
       @wait_count -= 1
      return
    end
if 后面retrun的意思
返回,返回什么?
有什么作用?


版务信息:本贴由楼主自主结贴~
《隋唐乱》完整解密版点击进入
米兰,让我怎么说离开……

曾经我也是一个有志青年,直到我膝盖中了一箭……

《隋唐乱》博客地址

Lv1.梦旅人

梦石
0
星屑
50
在线时间
1 小时
注册时间
2009-4-1
帖子
22
2
发表于 2009-6-8 23:40:05 | 只看该作者
结束方法的运行,且把表达式的值设定为方法的返回值。若给出了 2 个以上的表达式,则将这些表达式组成一个数组,然后把该数组设定为方法的返回值。若省略表达式,则返回值为 nil。

def abc
return 2
#同时也退了
#下面也作废
end
返回函数值为2 既abc 为 2

def abc
  return  #退出当前函数
下面全全作废
end

系统信息:本贴获得楼主认可,66RPG感谢您的热情解答~
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
142
在线时间
264 小时
注册时间
2006-11-22
帖子
1057
3
发表于 2009-6-8 23:44:27 | 只看该作者
我看成redant的意思了....在index.asp....


def a
  if $a==5
    p 'a'
    return
  end
  p 'b'
end
$a=5
a
exit

你試一下,是不會執行p 'b',我理解是中止該方法執行。
系统信息:本贴获得楼主认可,66RPG感谢您的热情解答~
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦·贤者

梦石
0
星屑
50
在线时间
1141 小时
注册时间
2007-12-15
帖子
4100
4
发表于 2009-6-8 23:46:43 | 只看该作者
虽然不知道move函数是干什么的,不过@wait_count是等待的帧数,意思就是说,在@wait_count>0时,实际上move函数是不起作用的,直接返回了(没有返回值)
http://rpg.blue/home.php?mod=space&uid=34951&do=blog&id=12799
回复 支持 反对

使用道具 举报

Lv1.梦旅人

蚂蚁卡卡

梦石
0
星屑
116
在线时间
66 小时
注册时间
2007-12-16
帖子
3081
5
 楼主| 发表于 2009-6-8 23:48:12 | 只看该作者
主要的是if 后面的return

好像我填1、2、3之类也能运行

if @wait_count > 0
       @wait_count -= 1
      return nil # 或者1、2、3之类的
end


如果这段代码不足以说明问题 我马上传工程




回35
那个 return 后面加什么也都还是"a"
为什么?
F1里的return有
return 12
return 1,2,3
能解释下么?
《隋唐乱》完整解密版点击进入
米兰,让我怎么说离开……

曾经我也是一个有志青年,直到我膝盖中了一箭……

《隋唐乱》博客地址
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
1 小时
注册时间
2009-4-1
帖子
22
6
发表于 2009-6-8 23:51:15 | 只看该作者
以下引用redant于2009-6-8 15:48:12的发言:


主要的是if 后面的return

好像我填1、2、3之类也能运行

if @wait_count > 0
      @wait_count -= 1
     return nil # 或者1、2、3之类的
end


如果这段代码不足以说明问题 我马上传工程


你不用传工程 标题不对 是return

def move
   if @wait_count > 0  
    #如果 @wait_count 大于  0
    # @wait_count = @wait_count  - 1
      @wait_count -= 1
    # 这时退出move  下面就不在运行.
    #单单这一句也就说,如果@wait_count > 0时 @wait_count = @wait_count  - 1 然后就退出这个函数
     return
   end
end
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
50
在线时间
159 小时
注册时间
2008-5-27
帖子
190
7
发表于 2009-6-8 23:57:08 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦·贤者

梦石
0
星屑
50
在线时间
1141 小时
注册时间
2007-12-15
帖子
4100
8
发表于 2009-6-9 00:00:09 | 只看该作者
如果不把函数的运算结果赋给一个变量的话,返回值是没有意义的,return和return 1没有区别。在这种情况下,调用函数只不过执行了函数定义的过程,如顶楼的@wait_count-=1,而return表示不需要执行到end就可以中途退出该函数,仅此而已。
系统信息:本贴获得楼主认可,66RPG感谢您的热情解答~
http://rpg.blue/home.php?mod=space&uid=34951&do=blog&id=12799
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
1 小时
注册时间
2009-4-1
帖子
22
9
发表于 2009-6-9 00:07:46 | 只看该作者
本来我打了好多,结果按俩下回车没了。....

简单来讲 看过c++的应该很明白
def abc
  n = 1
  if n > 0
    return n
  end
  n  = 100
end
p abc  #既为1  因为 n > 0 时 return n 退出了abc函数运行并反回了n的值而 n = 100 没有运行,所以 abc 既为 1..

数组.
def abc
  return 1,2,3
end
p abc  [1,2,3]

空nil
def abc
n = 1
if n > 0
  return
end
  return 100
end


既p abc  为nil  一般空的return 返回 只当做退出函数停止函数使用,
回复 支持 反对

使用道具 举报

Lv1.梦旅人

蚂蚁卡卡

梦石
0
星屑
116
在线时间
66 小时
注册时间
2007-12-16
帖子
3081
10
 楼主| 发表于 2009-6-9 00:13:08 | 只看该作者
def move
    if @wait_count > 0
       @wait_count -= 1
      return
    end
    @wait_count = 5 # 按说是跳过这句  可删了这句的话效果就不一样了
   
    if @dir == 1
      if @black.y == 0
        overevents
        return
      end
        @black.y -= 16
    elsif @dir == 2
      if @black.y == 480
        overevents
        return
      end
        @black.y += 16
    elsif @dir == 3
      if @black.x == 0
        overevents
        return
      end
        @black.x -= 16
    elsif @dir == 4
      if @black.x == 640
        overevents
        return
      end
        @black.x += 16
    end

  end

  def overevents
    @black.dispose
    $scene = Scene_Title.new
  end

还有点拌 我自己想会儿
先下了 谢谢大家的回答{/wx}
《隋唐乱》完整解密版点击进入
米兰,让我怎么说离开……

曾经我也是一个有志青年,直到我膝盖中了一箭……

《隋唐乱》博客地址
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-4-26 00:41

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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