freeCodeCamp/guide/chinese/ruby/index.md

131 lines
6.0 KiB
Markdown
Raw Normal View History

---
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/) 。 RVMRuby 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中对初学者的推荐阅读是[为什么PoignantRuby指南](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编程语言为iOSAndroid和OS X开发跨平台本机应用程序。 更多资源来自http//www.rubymotion.com/
## 学习Ruby之后会怎么样
每种编程语言都扮演着重要的角色。您可以为许多开源项目做出贡献或者在掌握了Ruby之后可以申请一些大公司。许多大型互联网网站如BasecampAirbnbBleacher ReportFab.comScribdGrouponGumroadHuluKickstarterPitchforkSendgridSoundcloudSquareYammerCrunchbaseSlideshareFunny or DieZendeskGithub Shopify建立在Ruby之上因此有很多选择。 此外许多初创公司正在招聘RUby on Rails技能的人因为没有多少程序员试图学习Ruby。所以你可能有一个明确的工作在一家初创公司工作。 因此Ruby是初学者友好的并且非常难以发现你有很多空缺可以作为开发人员工作。