所以你想开始使用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