Project1
标题:
请问:有关块问题
[打印本页]
作者:
kvkv97
时间:
2021-4-11 15:32
标题:
请问:有关块问题
#--------------------------------------------------------------------------
# ● 设置选择项
#--------------------------------------------------------------------------
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|注释掉,为什么会抱错?
作者:
enghao_lim
时间:
2021-4-12 02:36
本帖最后由 enghao_lim 于 2021-4-12 02:37 编辑
n是参数,删掉了自然会报错。
找不到一个简单明了的解释,这个凑合着把,你可以看看什么是proc。
https://www.jianshu.com/p/4ad4517ed6a8
作者:
kvkv97
时间:
2021-4-14 15:32
顺便问一下,如果调用块的话,什么情况下可以有参数,什么情况下可以不带参数?
作者:
enghao_lim
时间:
2021-4-15 04:49
本帖最后由 enghao_lim 于 2021-4-15 04:54 编辑
kvkv97 发表于 2021-4-14 15:32
顺便问一下,如果调用块的话,什么情况下可以有参数,什么情况下可以不带参数? ...
块是否有参数完全是自己决定的。
a = Proc.new {|n| n * 2 } #=> 有参数
b = a.call(5)
c = Proc.new { 10 * 5 + 6 / 7 } #=> 无参数
b = c.call()
复制代码
其实块和函数相差不大,何时使用主要是经验,非必须。
def dd(n)
return n * 2
end
b = dd(5)
复制代码
效果会和上面带参数的块相同。
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1