是否有更短的方法来找到满足某些条件的数组中的第一个元素:
my_array[ my_array.index {|x| x.some_test} ]
Run Code Online (Sandbox Code Playgroud) 有什么区别:
Dir.glob(File.join('.', '**', '*')).each do |e|
end
Run Code Online (Sandbox Code Playgroud)
和
require 'find'
Find.find('.').each do |e|
end
Run Code Online (Sandbox Code Playgroud)
尽管Find的速度慢了3倍.
有没有办法用TypeScript实现以下功能?
function add(x, y) {
return x + y;
}
Run Code Online (Sandbox Code Playgroud)
我想要以下编译:
add(1, 2);
add("hello ", "world");
Run Code Online (Sandbox Code Playgroud)
但我不希望以下编译:
add(4, "world");
add("hello ", 4);
Run Code Online (Sandbox Code Playgroud)
另请注意,我希望它仅针对字符串和数字进行编译.
流程有一个奇怪的错误.我只是想尝试一个接受带有amount属性的对象数组的函数,但是在提供具有更多属性的对象时我遇到了错误.
const sum = (items: Array<{amount: number}>) => {/* something */}
type Item = {
amount: number,
name: string
};
const list: Array<Item> = [];
sum(list);
Run Code Online (Sandbox Code Playgroud)
这给了我以下错误:
10: const list: Array<Item> = [];
^ property `name`. Property not found in
2: const sum = (items: Array<{amount: number}>) => {/* something */}
^ object type
Run Code Online (Sandbox Code Playgroud)
我有点困惑为什么这段代码不起作用:
def create(type)
Module.new do
def foo
type
end
end
end
Run Code Online (Sandbox Code Playgroud)
当调用foo返回的模块时,type未定义。我应该使用 Proc 或 lambda 来捕获 create 方法中的范围吗?
(我可能最近JavaScript做的太多了)
tl;dr
如何使用使用创建时可用变量的方法在运行时创建模块?