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

Project1

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

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

[复制链接]

Lv4.逐梦者

梦石
0
星屑
7946
在线时间
1182 小时
注册时间
2007-7-29
帖子
2055
1
发表于 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
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
7946
在线时间
1182 小时
注册时间
2007-7-29
帖子
2055
2
发表于 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-5-10 22:11

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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