我不明白为什么有些人会在ruby中使用百分比语法.
例如,我正在阅读ruby插件指南,它使用如下代码:
%w{ models controllers }.each do |dir|
path = File.join(File.dirname(__FILE__), 'app', dir)
$LOAD_PATH << path
ActiveSupport::Dependencies.load_paths << path
ActiveSupport::Dependencies.load_once_paths.delete(path)
end
Run Code Online (Sandbox Code Playgroud)
每当我看到这样的东西时,我都要去查找百分比语法参考,因为我不记得%w的含义.
这种语法真的比较["models", "controllers"].each ...好吗?
我认为在后一种情况下,我更清楚的是我已经定义了一个字符串数组,但在前者中 - 特别是对于学习红宝石的人 - 它似乎并不那么清楚,至少对我而言.
如果有人可以告诉我,我在这里遗漏了一些关键点,那么请这样做,因为我很难理解为什么百分比语法似乎是绝大多数ruby程序员的首选.
Way*_*rad 15
一般用于一般分隔输入(如调用%w,%r等)以避免必须转义分隔符.这使得它对于具有嵌入分隔符的文字特别有用.对比正则表达式
/^\/home\/[^\/]+\/.myprogram\/config$/
Run Code Online (Sandbox Code Playgroud)
同
%r|^/home/[^/]+/.myprogram/config$|
Run Code Online (Sandbox Code Playgroud)
或者字符串
"I thought John's dog was called \"Spot,\" not \"Fido.\""
Run Code Online (Sandbox Code Playgroud)
同
%Q{I thought John's dog was called "Spot," not "Fido."}
Run Code Online (Sandbox Code Playgroud)
当你阅读更多Ruby时,一般分隔输入(%w,%r,&c.)的含义,以及Ruby的其他特性和习语,将变得清晰.
我相信Ruby通常有几种方法可以做同样的事情.像Perl一样,Ruby似乎是一种后现代语言:极简主义不是核心价值观,而只是众多竞争设计力量中的一种.
| 归档时间: |
|
| 查看次数: |
984 次 |
| 最近记录: |