相关疑难解决方法(0)

如何在Ruby中定义[方括号]方法?

我正在编写Ruby编程 - 一个实用的程序员指南,并且偶然发现了这段代码:

class SongList
  def [](key)
    if key.kind_of?(Integer)
      return @songs[key]
    else
      for i in 0...@songs.length
        return @songs[i] if key == @songs[i].name
      end
    end
    return nil
  end
end
Run Code Online (Sandbox Code Playgroud)

我不明白定义[]方法是如何工作的?

为什么键在[]之外,但是当调用方法时,它在[]里面?

键可以没有括号吗?

我知道有更好的方法来写这个,并知道如何编写我自己的方法,但这个[]方法只是让我感到困惑...任何帮助非常感谢,谢谢

ruby methods

42
推荐指数
3
解决办法
2万
查看次数

ActiveRecord 迁移后的括号 [5.1] 是什么,它是如何工作的?

使用bin/rails g migration CreateUser第一行生成新迁移时将如下所示:

class CreateUser < ActiveRecord::Migration[5.1]
Run Code Online (Sandbox Code Playgroud)

[5.1]代表什么以及它是如何工作的?

这是Rails 5 的 ActiveRecord::Migration 中的 [5.0] 是什么意思的后续因为它没有解释这是如何合法的 ruby​​ 并且没有出现在使用[5.1]brackets

ruby activerecord ruby-on-rails ruby-on-rails-5

3
推荐指数
1
解决办法
736
查看次数