131 lines
6.0 KiB
Markdown
131 lines
6.0 KiB
Markdown
---
|
||
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之后会怎么样?
|
||
|
||
每种编程语言都扮演着重要的角色。您可以为许多开源项目做出贡献,或者在掌握了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是初学者友好的,并且非常难以发现你有很多空缺可以作为开发人员工作。 |