Ruby 学习笔记(一)
环境搭建
本文基于Mac OS,windowns坑较多,建议使用Mac。
xcode-select -p
检查是否安装xcode-select, 如果没有,通过xcode-select --install
命令进行安装,ruby安装时需要这个library。/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
,安装Homebrew包管理工具,类似于npm, 官网地址。brew install git
安装Git\curl -L https://get.rvm.io | bash -s stable
安装RVM (Ruby Version Manager)rvm install 2.3.1
安装ruby,2.3.1为版本号
rvm list
列出已经安装ruby版本,rvm use 2.3.1 --default
设定默认的ruby版本。gem sources --add https://ruby.taobao.org/ --remove https://rubygems.org/
由于rubygems被墙,可以添加淘宝提供的Gem下载站点。- 编辑器使用Atom,IDE可以使用RubyMine。
类/对象
- ruby中几乎所有见到的都是对象。
- 和Java一样,ruby通过关键字class定义一个类。
class Dog
def bark
puts "wang wang..."
end
def self.static_method
puts "this is a static method"
end
end
通过 Dog.new.bark
调用实例方法,Dog.static_method
调用类方法。
- 类变量
class House
@@location = 'Xi\'an'
def self.location
@@location
end
end
puts House.location => Xi'an
通过关键字'<'表示继承.
class Apartment < House
@@location = 'Gaoxin'
end
puts House.location => Gaoxin
puts Apartment.location => Gaoxin
修改类变量会修改对应的父类和所有子类。
- 实例变量
class House
attr_accessor :location
@location = 'xi\'an'
end
puts House.new.location => nil
实例变量变为类变量
class House
class << self
attr_accessor :location
end
@location = 'Xi\'an'
end
class Apartment < House
@location = 'Gaoxin'
end
puts House.location => Xi'an
puts Apartment.location => Gaoxin