2018-10-12 20:35:31 +00:00
---
title: Ruby
localeTitle: 红宝石
---
## 什么是Ruby?
Ruby由Yukihiro“Matz”Matsumoto创建, 是一种[开源](https://github.com/ruby/ruby) ,动态和解释的脚本语言,用于快速简便的面向对象编程。意思是:
众所周知,它拥有编程语言中[最大的友好社区](https://www.ruby-lang.org/en/community/)之一。
* 能够直接进行操作系统调用
* 开发期间的即时反馈
* 变量声明是不必要的
* 内存管理是自动的
* 一切都是对象
* 模块具有“mixin”功能
* 迭代器和闭包
如果您不熟悉上述一些概念,请继续阅读,不要担心。 Ruby专注于简单性和生产力, 具有易于阅读和易于编写的优雅语法, 例如:
```ruby
# Quick example of Ruby with Object Oriented Programming
class Greeter
def initialize(name)
@name = name.capitalize
end
def salute
puts "Hello #{@name}!"
end
end
# Create a new object
g = Greeter.new("world")
# Output "Hello World!"
g.salute
```
## 版
目前的稳定版本是[2.5.1](https://www.ruby-lang.org/en/news/2018/03/28/ruby-2-5-1-released/) 。
## 安装
Mac OS X和许多Linux发行版预先安装了Ruby。要检查系统中是否预先安装了`ruby -v` , 只需在shell上运行`ruby -v` 。有几种方法可以安装Ruby:
* 当您使用类UNIX操作系统时, 使用系统的包管理器是最简单的入门方法。但是, 打包的Ruby版本通常不是最新版本。
* 安装程序可用于安装特定或多个Ruby版本。还有一个Windows安装程序。
* 管理器可帮助您在系统上的多个Ruby安装之间切换。
* 最后, 您还可以从源代码构建Ruby。
要了解如何通过包管理器, 安装程序和源安装Ruby, 请单击[此处](https://www.ruby-lang.org/en/documentation/installation/) 。 RVM( Ruby Version Manager) 和rbenv是管理多个Rubies的最流行的Ruby管理器。如果你被卡在任何地方, 请不要担心, 只需前往我们的[Gitter聊天室](https://gitter.im/FreeCodeCamp/ruby)并向我们询问任何问题。
## IRB
IRB代表Interactive Ruby Shell。缩写irb来自Ruby的文件扩展名为“.rb”的事实, 尽管交互式Ruby文件没有“.irb”的扩展名。该程序从命令行启动, 允许执行Ruby命令并立即响应, 实时进行实验。它具有命令历史记录, 行编辑功能和作业控制功能, 并且能够通过Internet直接作为shell脚本进行通信, 并与实时服务器进行交互。它由Keiju Ishitsuka开发。
```shell
irb
2.3.0 :001 > print "Hello World"
Hello World! => nil
```
## Ruby解释器
Ruby解释器是用于运行Ruby脚本的。如果它可用并且在Unix shell的搜索路径中可以通过键入命令`ruby`来启动它,然后脚本名称将调用解释器并运行脚本。
`hello_campers.rb`
```ruby
if 'welcome' == 'welcome'
print('Hello campers!')
end
```
从命令行:
```shell
$ ruby hello_campers.rb
Hello campers!
```
## 文档
Ruby有很好的[文档记录](https://www.ruby-lang.org/en/documentation/) 。这些文档包括语言的教程,指南,参考和元信息。
文档的另一个重要资源是[Ruby Doc](http://ruby-doc.org/core-2.3.0/) 。您应该访问此[链接](https://github.com/airbnb/ruby)以了解有关由AirBnB开发人员编写的Ruby样式指南的更多信息。
Ruby中对初学者的推荐阅读是[为什么( Poignant) Ruby指南](https://poignant.guide/) 这本书在编程书籍中很不寻常。由于有很多奇怪的幽默和叙事方面的轨道有时与这个主题完全无关, 因此在学习Ruby基础知识时, 这个方法可以让读者受到娱乐。
## 调试
内联`print`语句可用于简单调试:
```ruby
print some_variable # prints to console
```
> **...通常,调试程序的最快方法是向源添加一些打印语句:快速编辑 - 测试 - 调试周期使这种简单方法非常有效。**
Ruby还包含更强大的调试工具, 例如:
* [_撬调试_ ](https://github.com/nixme/pry-debugger )
## 你好,世界!
回到文档,我们可以阅读[`print`](http://ruby-doc.org/core-2.3.0/Kernel.html#method-i-print)方法,它是[内核模块](http://ruby-doc.org/core-2.3.0/Kernel.html)的内置方法之一。
```ruby
print(obj, ...) → nil
```
将每个对象打印到$ stdout。非字符串的对象将通过调用其`to_s`方法进行转换。 print的返回值`nil` 。因此, 当您在IRB中运行`print "Hello World!` ,输出为:
```shell
2.3.0 :001 > print "Hello World!"
Hello World!
=> nil
```
## 框架(宝石)
Ruby有几个用于快速搭建应用程序的框架( gem) 。到目前为止最流行的是[Rails](http://rubyonrails.org/) , 它最初于2004年发布.Ruby的其他框架( 宝石) 包括[Sinatra](http://www.sinatrarb.com/) , [Lotus ](http://lotusrb.org/ )和[Volt](http://voltframework.com/) 。这些选项中的每一个都有其发展的优点和缺点,并满足各种需求。
## 用于移动开发的Ruby Framework
要在Ruby中编写跨平台本机应用程序, RUBY MOTION用于使用Ruby编程语言为iOS, Android和OS X开发跨平台本机应用程序。 更多资源来自: http: //www.rubymotion.com/
## 学习Ruby之后会怎么样?
2019-02-12 19:16:22 +00:00
每种编程语言都扮演着重要的角色。您可以为许多开源项目做出贡献, 或者在掌握了Ruby之后可以申请一些大公司。许多大型互联网网站, 如Basecamp, Airbnb, Bleacher Report, Fab.com, Scribd, Groupon, Gumroad, Hulu, Kickstarter, Pitchfork, Sendgrid, Soundcloud, Square, Yammer, Crunchbase, Slideshare, Funny or Die, Zendesk, GitHub, Shopify建立在Ruby之上, 因此有很多选择。 此外, 许多初创公司正在招聘RUby on Rails技能的人, 因为没有多少程序员试图学习Ruby。所以, 你可能有一个明确的工作在一家初创公司工作。 因此, Ruby是初学者友好的, 并且非常难以发现你有很多空缺可以作为开发人员工作。