Ruby 语法入门

所以你想开始使用Ruby on Rails,但你根本没有Ruby的经验吗?或者也许你需要在几个月后从Ruby中编码任何东西之后的更新器?

本文为您提供 Ruby 最低可行的语法,以便您可以继续。

鲁比

Ruby是一个动态面向对象的编程语言(Ruby中的所有东西都是对象)。它是由Yukihiro Matsumoto在90年代中期创建的。

鲁比的重点是生产力和程序员的乐趣,换句话说,它专注于更少的屁股疼痛。

安装 Ruby

如果你在Mac或Linux上,很可能你已经安装了Ruby版本,但它可能不是最新的版本,但在本文写作时是v2.2.3。

要安装最新版本,最常用的方法是使用 RVM (Ruby Version Manager)

以下是如何从终端安装RVM,然后从终端安装Ruby和Rails:

1$ gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3
2$ \curl -sSL https://get.rvm.io | bash -s stable --ryby --rails

运行一些代码

一旦你安装了Ruby在你的机器上,它很容易开始玩和运行一些代码与irb(互动Ruby)。

关于语法一般的一些话

在 Ruby 中,没有每个行末尾的半列,只需在自己的行上开始每个新表达式. 您可以使用线末尾的 \ 字符继续在多个行上进行长表达式。

Ruby 文件具有.rb 扩展,以下是如何在 Ruby 中在屏幕上打印东西:

1puts "Hello, Alligator!"

或者,使用打印命令,该命令不同于插入,因为它不会在输出中添加新行:

1print "Hello, Alligator!"

保留关键词

以下是您不能在 Ruby 中作为标识符使用的关键字:

BEGIN, END, alias, and, begin, break, case, class, def, defined, do, else, elsif, end, ensure, false, for, if, in, module, next, nil, not, or, redo, rescue, retry, return, self, super, then, true, undef, unless, until, when, while, yield

标识符和变量名称

标识符和变量是案例敏感的,可以包含字母、十位数或 _ 字符. 它们不应该以数字开始。

评论

您使用#为评论. 大多数时候#也用于多行评论:

1# This is a comment
2
3# Comment on
4# multiple
5# lines

多行评论也可以这样创建:

1=begin
2Comment on
3multiple
4lines
5=end

数据类型

严格

Strings在Ruby中也是对象,你可以做如下的事情:

1"Alligator".size

谁会产生这个:

1=> 9

大量有用的方法可用于 Ruby 中的字符串. 这里有一些可以非常有用的,其中大多数是自我解释的:

capitalize, chars, chomp, chop, chr, count, delete, empty?, end_width?, eql?, include?, index, replace, reverse, slice, strip, swapcase

在 Ruby 中,常用的是在返回 true 或 false 时用问号终止方法名称。

整合者

我们不会在这里讨论每个Ruby数据类型,但整数提供了另一个很好的例子,它显示了Ruby中的所有东西是多么的对象。

1666.odd?

这将返回虚假,因为666是一个平等的数字。

拉拉斯

与许多其他语言一样,Ruby 字符串(http://ruby-doc.org/core-2.2.3/Array.html)是对象的索引集合,可以在相同的数组中使用不同类型的对象,该索引是基于零的,这只是意味着数组中的第一个东西处于 0 位置,如果您正在寻找数组中的第 3 个对象,则使用索引 2。

以下是宣布数组的两种有效方法:

1my_array = ["Something", "very", "boring"]
2
3# And this is equivalent:
4my_array = Array.new(["Something", "very", "boring"])

数组也有一些非常有用的方法,这里有一些:

any?, collect, compact, concat, count, delete, drop, each, empty?, eql?, first, include?, index, last, length, pop, push, reverse, shift, shuffle, slice, sort, unshift

哈希

Hashes类似于字典,而不是将其中的所有对象索引,它们与任何类型的对象可能具有独特的密钥相关联:

1accused = { "who" => "You", "with_what" => "club" }

常见的做法是使用符号作为哈希密钥:

1accused = { :who => "You", :with_what => "club" }

在您仅作为密钥使用符号的情况下,您可以使用以下简要语法:

1accused = { who: "You", with_what: "club" }

再次,哈希有许多有用的方法,以下是其中一些:

any?, clear, compare_by_identity, default, delete, each, each_key, each_pair, each_value, empty?, eql?, fetch, has_key?, has_value?, include?, invert, keep_if, length, shift, size

象征

符号在Ruby是有点奇怪的孩子,他们从一个字符开始,在Ruby或Rails项目中可以看到相当频繁的符号,它们类似于字符串,但不变。

条件性声明

如果...艾尔西夫...艾尔西

Ruby 提供了一些有趣的方式来构建条件陈述. 以下是传统的 if 陈述:

1sammy = "the shark"
2if sammy.length > 10
3  puts "Not quite"
4elseif sammy.length === 9
5  puts "I think we have a winner"
6else
7  puts "Getting cold"
8end

注意这里的关键字 elsif,而不是 elseif 或者如果, elsif! 用简单的 if 语句,你可以把它们结构在这样的一个行上:

1puts "Yes" if sammy.length === 9

除非声明

您可以使用反向逻辑,除非陈述:

1letters = ["A", "l", "l"]
2unless letters[1] === "l"
3  puts "This won't print"
4end

在上述示例中,条件的体不会执行,因为条件评估为真,除非陈述往往比使用逻辑更直观,否则它们更接近自然语言。

以下是另一个例子,使用一线语法:

1puts "Ok" unless letters.length > 3

案例声明

然而,结构条件陈述的另一种方法是使用案例陈述,如果陈述:

 1moon_to_earth = 238900
 2case
 3when moon_to_earth < 200000
 4  puts "Not quite back home"
 5when moon_to_earth < 250000
 6  puts "Went too far"
 7when moon_to_earth === 238900
 8  puts "Spot on!"
 9else
10  puts "Off the track again"
11end

或者您可以从您正在评估的变量开始案例陈述,请注意以下是如何使用各种陈述来评估:

 1moon_to_earth = 238900
 2case moon_to_earth
 3when 1..200000
 4  puts "Not quite back home"
 5when String
 6  puts "We're looking for an integer"
 7when 238900
 8  puts "Spot on!"
 9else
10  puts "Off the track again"
11end
Published At
Categories with 技术
Tagged with
comments powered by Disqus