Project1
标题:
怎么理解 |actor| ?
[打印本页]
作者:
kvkv97
时间:
2019-8-24 17:17
标题:
怎么理解 |actor| ?
在Interpreter 6中,
iterate_actor(@parameters[0]) do |actor|
怎么理解|actor|? “|”;里面的|在键盘什么位置?
在Interpreter 1中
def iterate_actor(parameter)
# 全体同伴的情况下
if parameter == 0
# 同伴全体循环
for actor in $game_party.actors
# 评价块
yield actor
end
# 单体角色的情况下
else
# 获取角色
actor = $game_actors[parameter]
# 获取角色
yield actor if actor != nil
end
end
怎么理解 yield actor?
作者:
kvkv97
时间:
2019-8-24 17:21
符号||是哪个键盘打出来的?
作者:
hyrious
时间:
2019-8-24 18:15
1. do |args| ... end 或者 { |args| ... } 中 |args| 就是代入定义时 yield 后面的东西,例如
def f
yield 1
yield "喵喵喵"
yield
end
f { |x| print "我拿到了 #{x.inspect}" }
#=>
我拿到了 1
我拿到了 "\u55B5\u55B5\u55B5"
我拿到了 nil
复制代码
2. 如果是标准美式(中式)键盘,在回车键上方有一个「 \ 」键,按住 shift 按下它就可以打出 |
日文键盘应该在上面一行数字键的最后,按住 shift 按「 ¥ 」键
作者:
taeckle
时间:
2019-8-25 04:27
请教一下那个yield又是什么意思啊?可以举个例子吗?
作者:
fux2
时间:
2019-8-25 09:36
taeckle 发表于 2019-8-25 04:27
请教一下那个yield又是什么意思啊?可以举个例子吗?
相当于js里的调用传入的回调函数
ruby代码
class Array
def process_first
yield self.first
self[0] *= 2
end
end
[2,3,4].process_first do |num|
p num
end
复制代码
js代码
Array.prototype.process_first = function(callback) {
callback(this[0]);
this[0] *= 2;
};
[2,3,4].process_first(function(num) {
console.log(num);
});
复制代码
作者:
kklt
时间:
2019-8-25 13:54
本帖最后由 kklt 于 2019-8-25 13:55 编辑
迭代器(Iterator)
迭代作动词时指: 反复、重复,对应英文 iterate ;作名词时对应英文 iteration 。根据前述字源,迭代器意为一种会反复做相同工作的事物,对应英文 iterator 。在 Ruby 中,每个迭代器都是一种个体的方法。
语法:
個體.迭代器 do |參數|
...程式區塊...
end
個體.送代器 { |參數|
...程式區塊...
}
范例:
5.times do |c|
puts c
end
如上例,times 是一个迭代器(iterator),会做 5 次迭代(iteration)。
撰写程式码时,常有各式各样的情形需要循环处理。在 C 语言中,我们用 for 或 while。例如:
for (str = "abcdefg"; *str != '\0'; str++) {
/* 處理動作 */
}
C 语言的 for(...) 语法帮助我们建立抽象的循环动作,但仍要求程序员了解字串内部结构的细节,才能写出测试 *str 是否为 null 字元的程式码。这使得 C 语言感觉像是低阶语言。高阶语言应提供更有弹性的迭代。看看下列的 sh 指令手稿的做法:
#!/bin/sh
for i in *.[ch]; do
# ... 針對每一個檔案做某件事
done
yield
我们可将一个程式码区块传递给迭代器,并于迭代器中以 yield 叙述将程式流程转移至该程式码区块。下列范例定义了名为 repeat 的迭代器,它会依据引数所指定之次数,反复执行程式码区块内容。
def repeat(num)
while num > 0
yield
num -= 1
end
end
l
repeat(3) { puts "foo" }
=> foo
foo
foo
摘自
https://zh.wikibooks.org/wiki/Ru ... D%E4%BB%A3%E5%99%A8
(Iterator)
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1