`

Ruby => 继承

    博客分类:
  • Ruby
 
阅读更多
Ruby不支持多继承。

1. 格式
class 类名 < 父类名
  类定义
end


# -*- coding: utf-8 -*-

=begin
这个文件讲解了ruby中的继承
RingArray类在指定的索引超过范围时,超出的部分会从数组的前端开始重新计算索引。
=end

class RingArray < Array              # RingArray inherits Array 
  def [](i)                          # 重新定义运算符[]
    idx = i % size                   # 求得实际的索引值
    super(idx)                       # 调用父类中同名的方法
  end 
end

eto = RingArray["子", "丑", "寅", "卯", "辰", "巳", 
                "午", "未", "申", "酉", "戌", "亥" ]

p eto[6]                             # => "午"
p eto[11]                            # => "亥"
p eto[15]                            # => "卯"
p eto[-1]                            # => "亥"
分享到:
评论

相关推荐

    essential_ruby

    hash['three'] = 3 # =&gt; {'one'=&gt;1, 'two'=&gt;2, 'three'=&gt;3} ``` ### IRB(Interactive Ruby Shell) IRB是一个交互式的Ruby Shell,可以让开发者快速测试Ruby代码片段。启动IRB非常简单: ```bash irb ``` 在IRB...

    Logstash ruby 插件 demo

    这些选项通过 `config` 方法声明,例如 `config :my_option, :string, :default =&gt; "default_value"`。 3. **初始化和运行**:`register` 方法用于初始化插件,在此阶段可以进行资源分配和连接建立等操作。`run` ...

    Ruby-ActiveMerchant一个简单的付款抽象库抽取自Shopify

    :number =&gt; '4111111111111111', :month =&gt; '10', :year =&gt; Time.now.year + 1, :first_name =&gt; 'John', :last_name =&gt; 'Doe', :verification_value =&gt; '123' ) response = gateway.authorize(1000, credit_...

    ruby中gruff画图的简单例子

    data = { 'Item 1' =&gt; 10, 'Item 2' =&gt; 20, 'Item 3' =&gt; 30, 'Item 4' =&gt; 40 } bar_chart.data('数据系列', data.keys, data.values) # 设置Y轴最大值 bar_chart.maximum_value = 50 # 画图 bar_chart.write('...

    ext_sti:通过关联继承扩展 Ruby on Rails STI

    用法宝石档案: gem 'ext_sti', :git =&gt; 'git://github.com/fuCtor/ext_sti.git'楷模: class Post &lt; ActiveRecord xss=removed&gt; PostType, :foreign_key =&gt; :post_type_id, :field_name =&gt; :name do |type| "#{type...

    Ruby的语法和语言特性总结

    散列表(哈希)在Ruby中用大括号定义,如`numbers = {2 =&gt; 'two', 5 =&gt; 'five'}`。散列表的键可以是任何类型,包括符号(如`stuff = {:array =&gt; [1, 2, 3], :string =&gt; 'Hi, mom!'}`)。通过键可以访问对应的值,如`...

    在Ruby on Rails中使用Markdown的方法

    :link_attributes =&gt; {:rel =&gt; 'external nofollow'} }) options = { :autolink =&gt; true, :no_intra_emphasis =&gt; true, :fenced_code_blocks =&gt; true, :lax_html_blocks =&gt; true, :strikethrough =&gt; true, ...

    will_paginate v2.3.11

    @posts = Post.paginate(:page =&gt; params[:my_page], :per_page =&gt; 10, :param_name =&gt; :my_page) ``` - **自定义分页类**:如果你需要更复杂的逻辑,可以创建自定义分页类并继承`WillPaginate::Collection`。 ###...

    ruby初学者教程(对初学者很有帮助)

    hash = {"name" =&gt; "Alice", "age" =&gt; 30} ``` **4.3 Number** 数字包括整数和浮点数。 ```ruby num = 123 ``` **4.4 String** 字符串是一系列字符的有序集合。 ```ruby str = "Hello, World!" ``` **4.5 ...

    Ruby的25个编程细节(技巧、实用代码段)

    support_amount_s = ChangeValue.find(:all, :select=&gt;"price", :conditions=&gt;["id in (?)", support_amount_a]) \ .map{|cv| cv.try(:price).to_i}.compact ``` **解析:** 1. 第一段代码查询了 `...

    RUBY 教程.doc

    hash = {"name" =&gt; "Ruby", "age" =&gt; 20} ``` 3. **流程控制:** 包括条件语句(if...elsif...else)、循环语句(while...do...end、for...in...do...end)等。 ```ruby if age &gt; 18 puts "成年人" elsif age ...

    Ruby-MongoMapper针对Mongo的一个Ruby对象映射器

    User.where(:age =&gt; { '$gt' =&gt; 18 }) ``` 3. **关联**:MongoMapper支持多种关联类型,如`has_one`、`has_many`、`belongs_to`等,它们允许你建立对象之间的关系。例如,一个用户可以有多个帖子: ```ruby ...

    企业级IT架构分享 云计算架构师成长之路 Puppet应用案例 共26页.pdf

    { "Ubuntu" =&gt; "debianlike", "RedHat" =&gt; "redhatlike", }`。 - **数组与哈希**:可以定义数组 `$package = [ "item1", "item2" ]` 和哈希 `$name1 = { key =&gt; value }`。 - **条件语句**:使用 `case` 语句可以...

    ruby介绍及相应的ruby demo示意源码,供大家参考学习

    person = {"name" =&gt; "Bob", "age" =&gt; 30} puts "Name: #{person["name"]}, Age: #{person["age"]}" ``` 5. `file_io.rb`:展示了Ruby如何进行文件输入输出操作。 ```ruby File.open("example.txt", "w") do |file|...

    Ruby 语言教程.docx.docx

    hash = { "name" =&gt; "John", "age" =&gt; 30 } hash.each do |key, value| puts "#{key}: #{value}" end ``` - **文件操作**:可以轻松地对文件进行读写操作: ```ruby File.open("test.txt", "w") do |file| ...

    armadillo:使用 ERB 模板继承模板

    犰狳 一个适用于 ERB 小型库... :base_path =&gt; File . join ( Dir . pwd , "views" ) , :scope =&gt; self } ) &lt;!-- views/myview.html.erb --&gt; &lt;&#37; extends ( "base.html" ) %&gt; &lt;&#37; vlock ( :title

    mandrill_mailer:发送Mandrill模板电子邮件的小工具

    曼德里尔·梅勒 继承现有Rails邮件中的MandrillMailer类,以使用其基于模板的电子邮件通过Mandrill发送事务性电子邮件。 安装 将此行添加到您的应用程序的Gemfile中:... :user_name =&gt; ENV [ 'MANDRILL_USERNAME' ] ,

    Ruby程序设计(简洁清新的教程)

    hash = { 'one' =&gt; 1, 'two' =&gt; 2 } puts hash['two'] # 输出2 ``` **4.3 Number** 数字类型包括整数(Integer)、浮点数(Float)等: ```ruby num = 123 puts num.to_s # 输出"123" ``` **4.4 String** 字符...

    swift-自定义多种样式的活动指示器(支持cocoapods)

    s.license = { :type =&gt; "MIT", :file =&gt; "LICENSE" } s.author = { "Your Name" =&gt; "your@email.com" } s.platform = :ios, "10.0" s.source = { :git =&gt; "https://github.com/your-github-repo-url.git", :tag...

Global site tag (gtag.js) - Google Analytics