Ruby使用说明书
2016-07-01 » iOS开发基础Ruby 概述
在介绍 CocoaPods 的实现之前,我们需要对 Ruby 的一些特性有一个简单的了解,在向身边的朋友“传教”的时候,我往往都会用优雅这个词来形容这门语言。
除了优雅之外,Ruby 的语法具有强大的表现力,并且其使用非常灵活,能快速实现我们的需求,这里简单介绍一下 Ruby 中的一些特性。
一切皆对象
在许多语言,比如 Java 中,数字与其他的基本类型都不是对象,而在 Ruby 中所有的元素,包括基本类型都是对象,同时也不存在运算符的概念,所谓的 1 + 1
,其实只是 1.+(1)
的语法糖而已。在 Ruby 中,你可以向任意的对象发送 methods
消息,在运行时自省,所以笔者在每次忘记方法时,都会直接用 methods
来“查文档”:
puts 1.methods
会打印出一堆method
一切皆对象不仅减少了语言中类型的不一致,消灭了基本数据类型与对象之间的边界;这一概念同时也简化了语言中的组成元素,这样 Ruby 中只有对象和方法,这两个概念,这也降低了我们理解这门语言的复杂度:
- 使用对象存储状态
- 对象之间通过方法通信
block
Ruby 对函数式编程范式的支持是通过 block,这里的 block 和 Objective-C 中的 block 有些不同。
首先 Ruby 中的 block 也是一种对象,所有的 Block 都是 Proc 类的实例,也就是所有的 block 都是 first-class 的,可以作为参数传递,返回。
def twice(&proc)
2.times { proc.call() } if proc
end
def twice
2.times { yield } if block_given?
end
yield
会调用外部传入的 block,block_given?
用于判断当前方法是否传入了block
。
在这个方法调用时,是这样的:
twice do
puts "Hello"
end
eval
最后一个需要介绍的特性就是 eval
了,早在几十年前的 Lisp 语言就有了 eval
这个方法,这个方法会将字符串当做代码来执行,也就是说 eval
模糊了代码与数据之间的边界。
> eval "1 + 2 * 3"
=> 7
有了 eval
方法,我们就获得了更加强大的动态能力,在运行时,使用字符串来改变控制流程,执行代码;而不需要去手动解析输入、生成语法树。
Ruby基础知识
http://www.runoob.com/ruby/ruby-tutorial.html
使用 RVM 安装Ruby
列出已知的 ruby 版本:
$ rvm list known
可以选择现有的 rvm 版本来进行安装(下面以 rvm 2.4.2 版本的安装为例)
$ rvm install 2.4.2
设置 Ruby 版本
将指定版本的 Ruby 设置为系统默认版本
$ rvm 2.0.0 --default
Ruby环境变量
ENV对象包含了所有当前设置的环境变量
Ruby类、变量、方法
$global_variable = 10
class Customer //类定义
@@no_of_customers=0
def initialize(id, name, addr) //方法定义
@cust_id=id
@cust_name=name
@cust_addr=addr
end
end //类结尾
局部变量:局部变量是在方法中定义的变量。局部变量在方法外是不可用的。在后续的章节中,您将看到有关方法的更多细节。局部变量以小写字母或 _ 开始。
实例变量:实例变量可以跨任何特定的实例或对象中的方法使用。这意味着,实例变量可以从对象到对象的改变。实例变量在变量名之前放置符号(@)。
类变量:类变量可以跨不同的对象使用。类变量属于类,且是类的一个属性。类变量在变量名之前放置符号(@@)。
全局变量:类变量不能跨类使用。如果您想要有一个可以跨类使用的变量,您需要定义全局变量。全局变量总是以美元符号($)开始。
osx 10.13以上的版本没法装更新的ruby,这个是离线安装
https://ruby-china.org/topics/35193
brew安装ruby
mac下升级ruby到最新版本
在安装其他软件的时候 发现ruby的版本过低,现在准备升级夏ruby。
查看ruby版本
命令:ruby --version
提示版本如下,确实应该升级了:
ruby 2.0.0p481 (2014-05-08 revision 45883) [universal.x86_64-darwin14]
升级ruby
查询网上采用brew方式
命令: brew install ruby
此时,会提示如下,先升级Homebrew,然后是个漫长的等待过程,你可以先喝口水等待一会儿了。
安装完成之后,执行查看版本命令,发现还是2.0.0,版本没有变,通过百度发现还应该设置环境变量
设置环境变量
打开文件:vi .bashrc
输入下面内容:export PATH=/usr/local/Cellar/ruby/2.5.1/bin:$PATH
执行导入命令:source .bashrc
再次查看版本
ruby --version
信息提示如下,大功告成:
ruby 2.5.1p57 (2018-03-29 revision 63029) [x86_64-darwin14]
rvm移除
rvm implode
在到~目录下面删除对应的rvm隐藏文件夹 ~/.bashrc 等下面的rvm环境
~/.rvm
,/usr/local/rvm
,在加上你的 ~/.profile
或是 ~/.bashrc
中的一行 [[ -s "/Users/ranmocy/.rvm/scripts/rvm" ]] && source "/Users/ranmocy/.rvm/scripts/rvm"
。