Luk*_*101 12 ruby ruby-on-rails
过去几天我一直在阅读很多关于Ruby的内容.我遇到的所有SO帖子都听说ruby是一种优雅的语言.你们能举个例子说明为什么红宝石比另一种语言更优雅?
Car*_*icz 17
它被认为是优雅的,因为它是正交的.这是一种奇特的说法,类似的操作适用于类似的操作数.
简单的例子:+在整数上添加它们; 关于浮点数,同上.在大整数上也是如此.在字符串上,它连接它们(你也期望它).现在这不是什么大不了的事+,你可以期待它来自任何体面的编程语言.但是有些操作像map或者filter,它们在列表上工作(它们应该!)但是它们也可以在数组上工作,实际上可以在任何可以枚举或迭代的事物上工作.
我喜欢数组(或列表)索引如何工作,你可以使用正整数索引从开始索引,或者负索引从结构的末尾指定一个位置,你可以指定一个范围来拉出一个子集.这也适用于列表,数组和(子)字符串.它在赋值(=)的右侧工作,它也在左侧工作(你可以分配一个子串,从而替换一部分字符串).因此,您不需要substring_replace功能,只需利用现有的一般概念.
Ruby的作者在满足用户(即程序员)的期望方面表达了这一点:应尽可能少的意外,只要常识会让你期望某些东西以某种方式起作用,它应该是.他非常努力地满足这一要求.此外,虽然Ruby借用了Perl的一点点,但作者不同意Perl的TMTOWTDI原则,支持Python的Zen:"应该有一个 - 最好只有一个 - 显而易见的方法."
Ruby执行闭包(=代码块)也很好,因此您可以通过将其包装在一对大括号中来指定函数.有些地方适合指定内联函数,而Ruby可以让你方便地完成它.
Ruby允许您使用少量编码来执行操作,因为它的构造以强大的方式组合在一起.我涉足项目Euler,我发现通常最简单易懂且易于理解的解决方案都是在Ruby中完成的.最短的是在J,但这是一种APL方言,对于不熟悉的人来说,它看起来像是线路噪音.
我的个人经历证实了这一点:我自学了Ruby和Rails,并在一周内编写了一个带有中等复杂数据分析的Web应用程序.我学到的每一个原则,我都可以在不同的地方申请不同的数据 - It Just Works™!
根据我的经验,块是使Ruby优雅的最大因素.什么比写每个迭代数组/散列/等更优雅...
arr = ["one", "two", "three"]
arr.each { |e|
puts e
}
Run Code Online (Sandbox Code Playgroud)
但是我相信它不仅仅是这个,Ruby语言的优雅也来自于库.大多数库都一直使用独特的Ruby'style'作为函数名,例如'each'用于迭代或使用'!' 和'?' 在破坏性/布尔返回函数的函数名称末尾,这就是真正保持Ruby'优雅'的原因.
| 归档时间: |
|
| 查看次数: |
3751 次 |
| 最近记录: |