Mar*_*tin 17 ruby styles pointfree
有没有办法简化以下代码?
filenames是文件名(字符串)的列表,例如["foo.txt","bar.c","baz.yaml"]
filenames.map { |f| File.size(f) }
Run Code Online (Sandbox Code Playgroud)
有没有办法将"File.size"变成proc或block?对于现有对象的方法,我可以做到&:method.模块级方法有类似的东西吗?
tok*_*and 26
您可以使用Object#method(method_name):
filenames.map(&File.method(:size))
Run Code Online (Sandbox Code Playgroud)
filesize = proc { |f| File.size(f) }
filenames.map(&filesize)
Run Code Online (Sandbox Code Playgroud)