`
pilipala
  • 浏览: 8412 次
  • 来自: ...
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

Re: Ruby惯用法

阅读更多
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是一种简单快捷的面向对象的脚本语言,具有丰富的类库和简洁的语法结构。在实际开发过程中,为了提高代码的可读性和可维护性,Ruby社区形成了一系列约定俗成的惯用法(idioms...

    编程语言发展史:Ruby语言的发展和应用

    编程语言发展史:Ruby语言的发展和应用 Ruby语言的发展历史 Ruby语言的发展可以追溯到1993年,日本程序员松本行弘开始开发Ruby。他的目标是创造一种易于使用的语言,同时具有面向对象编程语言的强大功能。在 Ruby...

    松本行弘:Ruby2.0

    ### 知识点一:Ruby 语言的起源与设计哲学 **标题与描述解析:** 在标题“松本行弘:Ruby2.0”及描述“松本行弘向大家介绍了如何使用Ruby2.0。”中,我们可以了解到这段演讲或文章主要由Ruby语言的创造者松本行弘...

    Ruby:ruby错误处理教程

    Ruby:ruby错误处理教程

    脚本编程之: ruby_bcyy_jb51.net

    标题中的“脚本编程之:ruby_bcyy_jb51.net”显然指的是一个关于Ruby编程语言的教程或者文章集合,可能是在jb51.net这个网站上发布或收集的。Ruby是一种面向对象的、动态类型的脚本语言,由日本人松本行弘(Yukihiro ...

    编程资源:Ruby 编程的简要介绍.docx

    ### Ruby编程语言简介 #### 一、Ruby语言的起源与发展 Ruby是一种简洁高效的面向对象脚本语言,由日本人松本行弘(Yukihiro Matsumoto)在20世纪90年代开发。作为一种相对年轻的编程语言,Ruby的设计理念融合了...

    Web开发:Ruby on Rails.pdf

    Web开发:Ruby on Rails.pdf

    Ruby:Ruby模块与包的深入理解与应用

    Ruby:Ruby模块与包的深入理解与应用

    p6df-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项目中使用Git进行版本控制

    Ruby是一种高级、面向对象的编程语言,由日本的Yukihiro "Matz" Matsumoto在1995年创建。Ruby的设计目标是简单直观,同时具有强大的功能,它受到了像Perl、Smalltalk、Eiffel、Ada以及Lisp等语言的启发。 Ruby的...

    ruby程序:ruby selenium Web驱动程序

    Ruby Selenium Web驱动程序是用于自动化Web浏览器操作的强大工具,它允许开发者使用Ruby语言编写脚本来控制浏览器的行为。这个工具主要用于Web应用的测试,但也可以用于其他需要浏览器交互的场景。在Ruby中,...

    脚本引擎内核源代码之:Ruby-1.8.6.tar.gz

    Ruby是一种面向对象的、动态类型的脚本语言,其设计哲学是简单、直觉性和生产力。在标题中的"Ruby-1.8.6.tar.gz"指的是Ruby的一个特定版本,即1.8.6,该版本被封装在一个tar.gz压缩文件中。这种格式常用于Linux和...

    Ruby是一种高级编程语言,主要用于Web开发和脚本编写 Ruby的资源主要分为官方文档、社区驱动的资源、学习资源和工具等

    Ruby是一种高级编程语言,主要用于Web开发和脚本编写。Ruby的资源主要分为官方文档、社区驱动的资源、学习资源和工具等。 官方文档 Ruby Documentation:Ruby官方文档,涵盖了语言的所有方面,包括语言特性、标准...

    探索Ruby的文本匹配神器:正则表达式的全面指南

    Ruby是一种高级的、面向对象的编程语言,由日本开发者松本行弘(Yukihiro "Matz" Matsumoto)在1995年创建。Ruby语言的设计哲学强调了简洁和生产力,它结合了多种编程范式,包括面向对象、命令式、函数式和过程式...

    Ruby的垃圾处理大师:深入垃圾回收机制

    Ruby是一种高级、面向对象的编程语言,由日本开发者松本行弘(Yukihiro "Matz" Matsumoto)在1995年创建。Ruby语言以其优雅、简洁和强大的功能而受到开发者的喜爱。以下是Ruby的一些关键特点: 1. **面向对象**:...

    从零到英雄:一步步部署你的Ruby on Rails应用

    Ruby 是一种高级、面向对象的编程语言,由日本开发者松本行弘(Yukihiro "Matz" Matsumoto)于1995年创建。Ruby 语言的设计哲学强调简洁和生产力,它结合了 Perl、Smalltalk、Eiffel、Ada 和 Lisp 等语言的特点,...

    Ruby 语法. Ruby 是一种开源的面向对象程序设计的服务器端脚本语言

    ### Ruby 语言基础知识点 #### 一、Ruby 语言简介 - **定义**:Ruby 是一种开源的面向对象程序设计的服务器端脚本语言。它最初由日本的松本行弘(まつもとゆきひろ/Yukihiro Matsumoto,社区中常被称为 Matz)在 ...

    ruby依赖包

    这是一个部署ruby运行环境所需的软件包,安装这个包之前需要安装ruby

    Ruby编程之道:探索优雅代码的艺术

    Ruby是一种高级、面向对象的编程语言。它由日本的Yukihiro "Matz" Matsumoto在1995年设计,并于1996年首次发布。Ruby语言以其简洁明了的语法和强大的功能而受到开发者的喜爱。Ruby语言的特点包括: 1. **面向对象**...

    探索Ruby中的块(Block):掌握流控制的瑞士军刀

    Ruby是一种高级的、面向对象的编程语言。它由日本的开发者松本行弘(Yukihiro "Matz" Matsumoto)在1995年创建。Ruby语言的设计目标是简单、自然,同时具有强大的功能。Ruby语言受到了Perl、Smalltalk、Eiffel、Ada...

Global site tag (gtag.js) - Google Analytics