ruby
Wei Jieyang Lv4

简介

Ruby是一种纯粹的面向对象编程语言。它由日本的松本行弘(まつもとゆきひろ/Yukihiro Matsumoto)创建于1993年。

您可以在 www.ruby-lang.org 的 Ruby 邮件列表上找到松本行弘(まつもとゆきひろ/Yukihiro Matsumoto)的名字。在 Ruby 社区,松本也被称为马茨(Matz)。

Ruby 是”程序员的最佳朋友”。

Ruby 的特性与 Smalltalk、Perl 和 Python 类似。Perl、Python 和 Smalltalk 是脚本语言。Smalltalk 是一个真正的面向对象语言。Ruby,与 Smalltalk 一样,是一个完美的面向对象语言。使用 Ruby 的语法比使用 Smalltalk 的语法要容易得多。

Ruby历史

Ruby明显比其他类似的编程语言(如Perl或Python)年轻,又因为Ruby是日本人发明的,所以早期的非日文资料和程序都比较贫乏,所以在网上仍然可以找到类似“Ruby的资料太少”之类的批评。约于2000年,Ruby开始进入美国,英文的资料开始发展。Ruby归根结底源于Perl和Python两类语言,与C,C++,C#,java是不同大类。

特性

  • Ruby 是开源的,在 Web 上免费提供,但需要一个许可证。
  • Ruby 是一种通用的、解释的编程语言。
  • Ruby 是一种真正的面向对象编程语言。
  • Ruby 是一种类似于 Python 和 Perl 的服务器端脚本语言。
  • Ruby 可以用来编写通用网关接口(CGI)脚本。
  • Ruby 可以被嵌入到超文本标记语言(HTML)。
  • Ruby 语法简单,这使得新的开发人员能够快速轻松地学习 Ruby。
  • Ruby 与 C++ 和 Perl 等许多编程语言有着类似的语法。
  • Ruby 可扩展性强,用 Ruby 编写的大程序易于维护。
  • Ruby 可用于开发的 Internet 和 Intranet 应用程序。
  • Ruby 可以安装在 Windows 和 POSIX 环境中。
  • Ruby 支持许多 GUI 工具,比如 Tcl/Tk、GTK 和 OpenGL。
  • Ruby 可以很容易地连接到 DB2、MySQL、Oracle 和 Sybase。
  • Ruby 有丰富的内置函数,可以直接在 Ruby 脚本中使用。

语言特点

  • 完全面向对象
    • 在Ruby语言中,任何东西都是对象,包括其他语言中的基本数据类型,比如整数
  • 变量没有类型
  • Ruby的变量可以保存任何类型的数据。
  • 任何东西都有值
  • 不管是数学或者逻辑表达式还是一个语句,都会有值。
  • ruby语言很优雅,可以做到不需要注释就可以读懂。

Ruby是动态语言,你可以在程序中修改先前定义过的类。 也可以在某个类的实例中定义该实例特有的方法,这叫做单例方法。

1
2
3
4
5
6
7
8
9
class MyClass
def the_method
"generalmethod"
end
end
mc=MyClass.new
def mc.the_method
"special for this instance."
end

安装

Homebrew:

  • 官网链接
  • Homebrew是一款Mac OS平台下的软件包管理工具,拥有安装、卸载、更新、查看、搜索等很多实用的功能。简单的一条指令,就可以实现包管理,而不用你关心各种依赖和文件路径的情况,十分方便快捷。
  • 援引官方的一句话:又提示缺少套件啦?别担心,Homebrew 随时守候。Homebrew —— OS X 不可或缺的套件管理器。
  • 安装路径:/usr/local/Homebrew
  • 大部分情况下,它把软件包安装到 /usr/local/Cellar/程序名/版本号目录 下,然后在 /usr/local/bin 下建立符号链接,没有其他的操作了。
  • 指令
    • brew –version:查看版本
    • brew –repo:查看路径

Ruby:

  • 官网链接
  • Ruby,一种简单快捷的面向对象(面向对象程序设计)脚本语言
  • CocoaPods是用Ruby构建的,它可以使用macOS上的默认Ruby进行安装。您可以使用Ruby版本管理器(RVM),但建议使用macOS上提供的标准Ruby。

注意:Mac OS X 或 Linux,别在 Windows 上面搞,那是在浪费时间,两个原因

  1. Ruby 对 Unix 环境的需求非常高,这点 Mac OS X 和 Linux 系列的系统才能很好的满足;
  2. Ruby 在 Windows 环境下面执行效率低。

RubyGem:

  • 菜鸟教程
  • RubyGems 是 Ruby 的一个包管理器,它提供一个分发 Ruby 程序和库的标准格式,还提供一个管理程序包安装的工具。
  • RubyGems 旨在方便地管理 gem 安装的工具,以及用于分发 gem 的服务器。这类似于 Ubuntu 下的apt-get, Centos 的 yum,Python 的 pip。
  • RubyGems大约创建于2003年11月,从Ruby 1.9版起成为Ruby标准库的一部分。
  • Gem 是 Ruby 模块 (叫做 Gems) 的包管理器。其包含包信息,以及用于安装的文件。
  • Gem通常是依照”.gemspec”文件构建的,包含了有关Gem信息的YAML文件。Ruby代码也可以直接建立Gem,这种情况下通常利用Rake来进行。
  • gem命令用于构建、上传、下载以及安装Gem包。
  • 指令
1
2
3
4
5
6
7
$ ruby -v          # 查看安装版本
$ rvm -v
$ gem sources -l # 查看默认镜像源

# uby的默认源使用的是cocoapods.org,国内访问这个网址有时候会有问题,网上的一种解决方案是将远替换成淘宝的,替换方式如下
$ gem source -r https://rubygems.org/ # 移除次镜像源
$ gem source -a/--add https://gems.ruby-china.org # 添加新的镜像源
截屏2020-12-18 上午9.17.40

RVM:

  • 官网链接
  • (Ruby Version Manager)Ruby的版本管理工具。
  • RVM 是一个命令行工具,可以让你简单的管理多种版本的Ruby,并在这些版本中切换。
  • 简书教程
  • 指令
1
2
3
4
5
6
7
8
9
10
$ rvm install 版本      # 安装指定版本
$ rvm install ruby --head # 安装最新版本

# RVM其他常用命令
$ rvm info # rvm信息
$ rvm list known # 列出已知的ruby版本
$ rvm list # 查询已经安装的 ruby
$ rvm use [版本号] --default # 配置ruby使用版本
$ rvm get head # 升级
$ rvm remove 版本号 # 移除ruby版本

Linux / Unix

Mac

  • 默认情况下,mac系统已经安装了Ruby, 安装在 /System/Library/Frameworks/Ruby.framework/Versions/Current 目录下。
  • 但是,由于默认的 Ruby 安装在 /System 目录下,过深的、与 *nix 约定不同的目录结构对日常的开发、维护都带来许多不便。

Linux/Unix

Linux/Unix 上的 Ruby 安装

Windows

Windows 上的 Ruby 安装

Ruby 命令行选项

Ruby 环境变量

  • Ruby 解释器使用下列环境变量来控制它的行为。
  • ENV 对象包含了所有当前设置的环境变量列表。
变量描述
DLN_LIBRARY_PATH动态加载模块搜索的路径。
HOME当没有参数传递给 Dir::chdir 时,要移动到的目录。也用于 File::expand_path 来扩展 “~”。
LOGDIR当没有参数传递给 Dir::chdir 且未设置环境变量 HOME 时,要移动到的目录。
PATH执行子进程的搜索路径,以及在指定 -S 选项后,Ruby 程序的搜索路径。每个路径用冒号分隔(在 DOS 和 Windows 中用分号分隔)。
RUBYLIB库的搜索路径。每个路径用冒号分隔(在 DOS 和 Windows 中用分号分隔)。
RUBYLIB_PREFIX用于修改 RUBYLIB 搜索路径,通过使用格式 path1;path2 或 path1path2,把库的前缀 path1 替换为 path2。
RUBYOPT传给 Ruby 解释器的命令行选项。在 taint 模式时被忽略(其中,$SAFE 大于 0)。
RUBYPATH指定 -S 选项后,Ruby 程序的搜索路径。优先级高于 PATH。在 taint 模式时被忽略(其中,$SAFE 大于 0)。
RUBYSHELL指定执行命令时所使用的 shell。如果未设置该环境变量,则使用 SHELL 或 COMSPEC。

开发工具

Ruby 不需要 IDE,一个简单的文本编辑器就足够了,作为 Ruby 开发者,这个必须习惯。

  • Mac 平台

  • Linux / Mac / Windows

    • Visual Studio Code

    • Atom

    • VimEmacs

    • 如果用 Vim 的话也可以尝试用 janus

    • Vim 的 Rails 插件 rails.vim

    • Sublime Text

      • Sublime文件默认存储编码为UTF8,我们几乎不用修改这个选项。
      • 在按快捷键Control + B执行代码的时候,所有输出都会被Python(Sublime是用Python开发的)接收,然后输出到控制台,输出的字符串编码必须是UTF8编码。

设置编译环境

Tool -> Build System

编译

Tool -> build


教程

语法

空白

行尾

标识符

保留字

变量

语言标准

  • $ 开头的一定是全局变量

  • @ 开头的都是实例变量

  • @@ 开头的是类变量

  • 常数则以大写字母开头

    • 这种方法,对文本编辑器的命令补全很有帮助,如在vim下先键入$及开头字母,再敲击Ctrl+p,则可专门补全本文件以及关联文件中的全局变量,perl与php亦有此优点。
  • 已经定义的类可以在运行时修改

  • Post title:ruby
  • Post author:Wei Jieyang
  • Create time:2020-12-17 10:12:34
  • Post link:https://jieyang-wei.github.io/2020/12/17/ruby/
  • Copyright Notice:All articles in this blog are licensed under BY-NC-SA unless stating additionally.