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

Project1

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

[已经解决] 请问:有关块问题

[复制链接]

Lv3.寻梦者

梦石
0
星屑
3925
在线时间
254 小时
注册时间
2013-10-13
帖子
790
跳转到指定楼层
1
发表于 2021-4-11 15:32:14 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x

  #--------------------------------------------------------------------------
  # ● 设置选择项
  #--------------------------------------------------------------------------
  def setup_choices(parameters)
    # choice_max 为设置选择项的项目数
    $game_temp.choice_max = parameters[0].size
    # message_text 为设置选择项
    for text in parameters[0]
      $game_temp.message_text += text + "\n"
    end
    # 设置取消的情况的处理
    $game_temp.choice_cancel_type = parameters[1]
    # 返回调用设置
    current_indent = @list[@index].indent
    $game_temp.choice_proc = Proc.new { |n| @branch[current_indent] = n }
  end
把Proc.new { |n| @branch[current_indent] = n }里面的|n|注释掉,为什么会抱错?

Lv4.逐梦者

梦石
0
星屑
7946
在线时间
1182 小时
注册时间
2007-7-29
帖子
2055
2
发表于 2021-4-12 02:36:28 | 只看该作者
本帖最后由 enghao_lim 于 2021-4-12 02:37 编辑

n是参数,删掉了自然会报错。
找不到一个简单明了的解释,这个凑合着把,你可以看看什么是proc。
https://www.jianshu.com/p/4ad4517ed6a8

点评

你如果硬要删除并看效果可以这样:Proc.new { @branch[current_indent] = 0 }  发表于 2021-4-14 04:45
因为这里有设置参数啊……==。搜索$game_temp.choice_proc.call你会发现都带参数。这里的参数n为赋值作用,你删了这句脚本也没有存在的必要了 (= n)。  发表于 2021-4-14 04:43
那文章显示中,怎么Proc可以没参数,这里参数怎么不能去掉?  发表于 2021-4-13 20:37
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
3925
在线时间
254 小时
注册时间
2013-10-13
帖子
790
3
 楼主| 发表于 2021-4-14 15:32:33 | 只看该作者
顺便问一下,如果调用块的话,什么情况下可以有参数,什么情况下可以不带参数?
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
7946
在线时间
1182 小时
注册时间
2007-7-29
帖子
2055
4
发表于 2021-4-15 04:49:48 | 只看该作者
本帖最后由 enghao_lim 于 2021-4-15 04:54 编辑
kvkv97 发表于 2021-4-14 15:32
顺便问一下,如果调用块的话,什么情况下可以有参数,什么情况下可以不带参数? ...


块是否有参数完全是自己决定的。
  1. a = Proc.new {|n| n * 2 } #=> 有参数
  2. b = a.call(5)
  3. c = Proc.new { 10 * 5 + 6 / 7 } #=> 无参数
  4. b = c.call()
复制代码


其实块和函数相差不大,何时使用主要是经验,非必须。
  1. def dd(n)
  2.   return n * 2
  3. end
  4. b = dd(5)
复制代码

效果会和上面带参数的块相同。

点评

谢谢指点!  发表于 2021-4-15 14:47

评分

参与人数 1星屑 +50 收起 理由
RyanBern + 50 认可答案

查看全部评分

回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-4-28 02:11

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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