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
Ruby 学习笔记(一)的更多相关文章
- Ruby学习笔记4: 动态web app的建立
Ruby学习笔记4: 动态web app的建立 We will first build the Categories page. This page contains topics like Art, ...
- ruby学习笔记(1)-puts,p,print的区别
ruby学习笔记-puts,p,print的区别 共同点:都是用来屏幕输出的. 不同点:puts 输出内容后,会自动换行(如果内容参数为空,则仅输出一个换行符号):另外如果内容参数中有转义符,输出时将 ...
- ruby 学习笔记 1
写ruby blog 系统的记录下.也是对我学ruby的点滴记录. 先介绍下我的学习环境.系统:ubuntu12.04文档:techotopia ,ruby文档,the hard way learn ...
- ruby学习笔记(2)-chomp,chop的区别
还没开始系统性的学习Ruby,最近在看metasploit框架的exploit会涉及到Ruby脚本,也就硬着头皮一遍查阅资料一遍做些笔记吧. Ruby字符串中存在chop和chomp的内置函数.我在h ...
- Ruby学习笔记0708
#!/usr/bin/env ruby class MegaGreeter attr_accessor :names # 初始化這個物件 def initialize(names = "Wo ...
- ruby 学习笔记 2 -变量
变量 在ruby的世界里,变量有5种,全局变量 局部变量 实例变量 常量 类变量以及伪变量 常用的: 全局: 在全局使用,使用$开头,因为是全局的,所以在任何的代码例子中都可以改变其值,造成混乱,所以 ...
- Ruby学习笔记
#!/usr/bin/ruby puts "Hello, Ruby, what is your name?" $name = STDIN.gets puts "Hi, I ...
- Ruby学习笔记(二)
1.block 代码块 do...end 或 {} 构成一个代码块,就像常见的 .each后面跟的代码块. my_nums = [1,2,3] my_double_nums = my_nums.col ...
- Ruby学习笔记之升级ruby的版本
升级ruby版本,有时候安装ruby的版本过低,需要进行升级,例如安装在centos6.7安装fpm需要ruby版本在1.9以上. 0x00 主机环境如下 [root@test ~]# cat /et ...
- Ruby学习笔记7: 添加身份验证(adding Authentication)
我们已经完成了Category & Product页面内容的增删改查,再加入一个身份验证即可成为一个较完整的Rails App了.本文就来完成这个任务. We now need to give ...
随机推荐
- 消息队列--RabbitMQ(二)
1.常用的几种队列简介 RabbitMQ有五种常用的队列,分别是:简单队列.work模式.发布订阅模式.路由模式.主题(Topic)模式.其实发布订阅.路由.主题这三种模式都从属于与routingke ...
- C++基础之多态性和动态联编
(1)多态性是指相同的函数名对应不同的实现.多态性采用两种方式:重载方式和覆盖方式.重载方式表现在函数重载和运算符重载:覆盖方式表现在基类与派生类中相同说明的函数.(2)函数重载要求被重载的函数应该在 ...
- neutron负载均衡高可用测试
对工作中,实验环境的一个小总结 1.创建高可用负载均衡器------创建高可用的时候,添加上ha-mode参数即可 neutron lb-pool-create --lb-method ROUND_R ...
- [CentOS7] iconv编程转换
声明:本文主要总结自:鸟哥的Linux私房菜-第九章.vim 程式編輯器,如有侵权,请通知博主 (-- 源自鸟哥的私房菜) 首先用Notepad++新建个文件来做这个实验,在Windows平台下新建个 ...
- XML之DTD
前言 上篇我们知道了,XML的应用范围还是很广的,那么无规矩不成方圆,如果我们每个人写XML的风格不一致,那么读起来是不是很费劲呢?所以格式良好的XML就渐渐的被我们所需要. 内容 格式良好指:拥有正 ...
- luogu1975 排队(分块)
luogu1975 排队(分块) 给你一个长度为n的序列,每次交换给定的两个数,输出每次操作后的逆序对个数. 首先考虑求出刚开始的逆序对.接着相当于带修改的求区间中比x大的数. 可以用分块,每个块内排 ...
- 洛谷P1065 作业调度方案
P1065 作业调度方案 题目描述 我们现在要利用m台机器加工n个工件,每个工件都有m道工序,每道工序都在不同的指定的机器上完成.每个工件的每道工序都有指定的加工时间. 每个工件的每个工序称为一个操作 ...
- 系统:Centos 7.2 内核3.10.0-327.el7.x86_64 # 内核需要高于2.6.32
系统:Centos 7.2 内核3.10.0-327.el7.x86_64 # 内核需要高于2.6.32 Drbd : 192.168.8.111:node1/dev/drdb0 /mydeta 19 ...
- python urllib2介绍
urllib2是Python的一个获取URLs(Uniform Resource Locators)的组件.他以urlopen函数的形式提供了一个非常简单的接口, 这是具有利用不同协议获取URLs的能 ...
- 小K的农场 差分约束
题目描述 小K在MC里面建立很多很多的农场,总共n个,以至于他自己都忘记了每个农场中种植作物的具体数量了,他只记得一些含糊的信息(共m个),以下列三种形式描述: 农场a比农场b至少多种植了c个单位的作 ...