attr_reader方法------读取实例变量 attr_writer方法------改写实例变量 attr_accessor方法-----读写实例变量 class Person attr_reader :name ---------1 attr_writer :name ---------2 def initialize(name) @name = name end end 1 相当于: def name @name end 2 相当于:def name=(value) @name = v…
(Ruby/Python/Perl) Ruby 语言与Python和Perl的一个很大区别,在于Ruby中,所有的实例变量都是在类中完全私有的,只能通过accessor 方法来进行变量访问,引用一段代码来说明具体的使用方法: class Rectangle attr_accessor :width attr_accessor :height attr_accessor :width2 attr_accessor :height2 def initialize(wdth, hgt) @width…
Ruby内置的方法Object#clone和Object#dup可以用来copy一个对象,两者区别是dup只复制对象的内容,而clone还复制与对象相关联的内容,如singleton method [ruby] view plaincopyprint? s = "cat" def s.upcase "CaT" end s_dup = s.dup s_clone = s.clone s_dup.upcase #=> "CAT" (single…
Ruby Dir 类和方法 Dir 是一个表示用于给出操作系统中目录中的文件名的目录流.Dir 类也拥有与目录相关的操作,比如通配符文件名匹配.改变工作目录等. 类方法 序号方法 & 描述 1Dir[pat] Dir::glob( pat) 返回一个数组,包含与指定的通配符模式 pat 匹配的文件名: * - 匹配包含 null 字符串的任意字符串 ** - 递归地匹配任意字符串 ? - 匹配任意单个字符 [...] - 匹配封闭字符中的任意一个 {a,b...} - 匹配字符串中的任意一个 D…
Ruby File 类和方法 File 表示一个连接到普通文件的 stdio 对象.open 为普通文件返回该类的一个实例. 类方法 序号方法 & 描述 1File::atime( path) 返回 path 的最后访问时间. 2File::basename( path[, suffix]) 返回 path 末尾的文件名.如果指定了 suffix,则它会从文件名末尾被删除. 例如:File.basename("/home/users/bin/ruby.exe") #=>…
ruby中的私有方法是指方法只能被隐含调用,不能被显示调用.而当没有显示接收者的时候,会把self当成接收者.因此,只能在自身中调用私有方法,这也是私有方法的调用规则. ruby的私有方法机制目的是:使得你很容易将方法分为两种,外部世界可以访问的方法和外部世界不可以访问的方法. 如下: class A def a self.method end def method p "hello world" end private :method end A.new.a method定义成私有方…
最近因为公司需求开始看ruby,先从ruby的基本数据类型开始看 看到ruby的字符串类型string,发现ruby中的字符串单双引号是不一样的,这点和Python有那么点不一样 主要是我们对字符串进行变量引用的时候要使用双引号 如下: 可支持全部的转义字符及用#{exp}将Ruby中的值插入字符串中 例: i = 5 str = “ abab#{i}cjd”  #->abab5cjd “#{‘ho‘ *3} happy new year”  #->ho ho ho happy new yea…
今天安装cocoapods时候出现了下面的提示 Error installing pods:active support requires Ruby version >= 2.2.0//这个需求的意思就是Ruby版本低, 需要更新至2.2.0以上版本. 注:所以我就想办法更新Ruby.网上最方面的方法是用rvm安装, 也就是先安装rvm(Ruby版本管理器), 再更新Ruby. 先查看你是否安装过rvm, 执行命令 rvm -v 如果显示是图1所示, 那就是没有, 需要安装. 下面来进行安装1>…
普通的实例变量 普通的实例变量,我们没法在 class 外面直接访问 #普通的实例变量,只能在 class 内部访问 class C1 def initialize(name) @name = name end end t1 = C1.new( {'a' => 1, 'b' => 2}) puts t1.name #报错: undefined method `name' for #<Context::C1:0x0000000142cd30 @name={:a=>1, :b=>…
今天安装cocoapods时候出现了下面的提示Error installing pods:active support requires Ruby version >= 2.2.0这个需求的意思就是Ruby版本低, 需要更新至2.2.0以上版本.所以我就想办法更新Ruby.网上最方面的方法是用rvm安装, 也就是先安装rvm(Ruby版本管理器), 再更新Ruby. 先查看你是否安装过rvm, 执行命令 rvm -v 如果显示是图1所示, 那就是没有, 需要安装. 1.png 下面来进行安装1>…