qiezi 写道
这么全啊。inject我看了几次没理解,干脆不看了。
ruby函数调用可以省括号,方便是方便,不过一些FP用法也看不见了,这方面python还比较好。
从facet可以看出来,ruby里面使劲往一个类里塞东西还是有传统的。
inject的确挺不太容易搞明白的,为了搞明白索性简单实现一下,这样理解应该会更深刻些,比如:
(1..10).inject{|sum, item| sum += item}
可以用下面的代码简单实现
class Range
def my_inject(x)
each { |i| x = yield(x,i) }
return x
end
end
仔细想想,ruby这种yield的机制真好,将通常的一个函数调用,变成了2个函数的组合调用。
这样一方面灵活性大大增加,变化更多。原来是写n个函数就是n种方式,现在变成写 n+m个函数就有了n*m种调用方式了。当然,别的语言也可以做到类似的实现,可是会造成太多的冗余代码,不但写得麻烦,读起来也累。
另一方面,更有利于把任务划分成更小的单位,这样会减少重复代码,让程序变得更简洁,尽量做到DRY( don't repeat yourself )
刚开始看ruby,感觉是一个不错的方向。
分享到:
相关推荐
### Ruby惯用法详解 #### 一、简介 Ruby是一种简单快捷的面向对象的脚本语言,具有丰富的类库和简洁的语法结构。在实际开发过程中,为了提高代码的可读性和可维护性,Ruby社区形成了一系列约定俗成的惯用法(idioms...
编程语言发展史:Ruby语言的发展和应用 Ruby语言的发展历史 Ruby语言的发展可以追溯到1993年,日本程序员松本行弘开始开发Ruby。他的目标是创造一种易于使用的语言,同时具有面向对象编程语言的强大功能。在 Ruby...
### 知识点一:Ruby 语言的起源与设计哲学 **标题与描述解析:** 在标题“松本行弘:Ruby2.0”及描述“松本行弘向大家介绍了如何使用Ruby2.0。”中,我们可以了解到这段演讲或文章主要由Ruby语言的创造者松本行弘...
Ruby:ruby错误处理教程
标题中的“脚本编程之:ruby_bcyy_jb51.net”显然指的是一个关于Ruby编程语言的教程或者文章集合,可能是在jb51.net这个网站上发布或收集的。Ruby是一种面向对象的、动态类型的脚本语言,由日本人松本行弘(Yukihiro ...
### Ruby编程语言简介 #### 一、Ruby语言的起源与发展 Ruby是一种简洁高效的面向对象脚本语言,由日本人松本行弘(Yukihiro Matsumoto)在20世纪90年代开发。作为一种相对年轻的编程语言,Ruby的设计理念融合了...
Web开发:Ruby on Rails.pdf
Ruby:Ruby模块与包的深入理解与应用
p6df-Ruby目录p6df-Ruby徽章概括贡献行为守则变化用法p6df-ruby:p6df-ruby / init.zsh: p6_ruby_prompt_info() p6df :: modules :: ruby :: deps() p6df :: modules :: ruby :: home :: symlink() ...
Ruby是一种高级、面向对象的编程语言,由日本的Yukihiro "Matz" Matsumoto在1995年创建。Ruby的设计目标是简单直观,同时具有强大的功能,它受到了像Perl、Smalltalk、Eiffel、Ada以及Lisp等语言的启发。 Ruby的...
Ruby Selenium Web驱动程序是用于自动化Web浏览器操作的强大工具,它允许开发者使用Ruby语言编写脚本来控制浏览器的行为。这个工具主要用于Web应用的测试,但也可以用于其他需要浏览器交互的场景。在Ruby中,...
Ruby是一种面向对象的、动态类型的脚本语言,其设计哲学是简单、直觉性和生产力。在标题中的"Ruby-1.8.6.tar.gz"指的是Ruby的一个特定版本,即1.8.6,该版本被封装在一个tar.gz压缩文件中。这种格式常用于Linux和...
Ruby是一种高级编程语言,主要用于Web开发和脚本编写。Ruby的资源主要分为官方文档、社区驱动的资源、学习资源和工具等。 官方文档 Ruby Documentation:Ruby官方文档,涵盖了语言的所有方面,包括语言特性、标准...
Ruby是一种高级的、面向对象的编程语言,由日本开发者松本行弘(Yukihiro "Matz" Matsumoto)在1995年创建。Ruby语言的设计哲学强调了简洁和生产力,它结合了多种编程范式,包括面向对象、命令式、函数式和过程式...
Ruby是一种高级、面向对象的编程语言,由日本开发者松本行弘(Yukihiro "Matz" Matsumoto)在1995年创建。Ruby语言以其优雅、简洁和强大的功能而受到开发者的喜爱。以下是Ruby的一些关键特点: 1. **面向对象**:...
Ruby 是一种高级、面向对象的编程语言,由日本开发者松本行弘(Yukihiro "Matz" Matsumoto)于1995年创建。Ruby 语言的设计哲学强调简洁和生产力,它结合了 Perl、Smalltalk、Eiffel、Ada 和 Lisp 等语言的特点,...
### Ruby 语言基础知识点 #### 一、Ruby 语言简介 - **定义**:Ruby 是一种开源的面向对象程序设计的服务器端脚本语言。它最初由日本的松本行弘(まつもとゆきひろ/Yukihiro Matsumoto,社区中常被称为 Matz)在 ...
这是一个部署ruby运行环境所需的软件包,安装这个包之前需要安装ruby
Ruby是一种高级、面向对象的编程语言。它由日本的Yukihiro "Matz" Matsumoto在1995年设计,并于1996年首次发布。Ruby语言以其简洁明了的语法和强大的功能而受到开发者的喜爱。Ruby语言的特点包括: 1. **面向对象**...
Ruby是一种高级的、面向对象的编程语言。它由日本的开发者松本行弘(Yukihiro "Matz" Matsumoto)在1995年创建。Ruby语言的设计目标是简单、自然,同时具有强大的功能。Ruby语言受到了Perl、Smalltalk、Eiffel、Ada...