没有Rails Java程序员如何使用Ruby

http://tech.ddvip.com   2008年01月18日    社区交流

内容摘要:Ruby on Rails仅是使Ruby成为伟大的一个因素,这就象EJB仅是Java企业平台的一个组成部分一样。本文将带你一同讨论,作为一名Java开发者,仅利用Ruby自身所能够实现的功能。

  现在,请注意,在列表5中,通过使用灵活的initialize()方法我创建了一个不同的Word实例。

  列表5.Ruby的灵活性!

require "dictionary"
defin = Dictionary::Definition.new("Skill in or performance of tricks")
defin_two = Dictionary::Definition.new("sleight of hand")
defs = [defin, defin_two]
tricky_wrd = Dictionary::Word.new("prestidigitation", "noun", defs)

  在我定义了两个Definition以后,我把它们添加到一个集合(在Java语言中,就象一个数组)。然后,我把该集合传递给Word的initialize()方法。

  七、集合运算

  Ruby的集合运算能力也相当简单-你是否看到在Word类中的add_definition和add_synonym方法?语法的重载意味着可以对集合进行加法运算。如果你看一下前面的列表2中的Definition类,你就会看到Java语言的相应代码更为复杂些:

this.exampleSentences.add(exampleSentence)

  Ruby的集合运算极其简明。在列表6中,你可以看到合并集合(使用+操作符)和存取成员(经由[position])是多么容易,这样做你不需要担心任何事情。

  列表6.快速的集合运算

require "dictionary"
idef_1 = Dictionary::Definition.new("Sad and lonely because deserted")
idef_2 = Dictionary::Definition.new("Bereft; forsaken")
defs = [idef_1, idef_2]
idef_3 = Dictionary::Definition.new("Wretched in appearance or condition")
idef_4 = Dictionary::Definition.new("Almost hopeless; desperate")
defs_2 = [idef_3, idef_4]
n_def = defs + defs_2 #n_def现在是[idef_1,idef_2,idef_3,idef_4]
n_def[1] #生成idef_2
n_def[9] #生成nil
n_def[1..2] #生成[idef_2,idef_3]

  注意,列表6中的代码仅涉及到Ruby中集合运算的基本内容!

责编:豆豆技术应用

正在加载评论...