ruby - 在 Ruby 中,什么是 AboutClasses 类?

标签 ruby

在 SO 和 Google 中搜索“ruby AboutClasses”都没有结果。

class Dog
end

fido = Dog.new
puts Dog.inspect
puts fido.inspect

结果是

AboutClasses::Dog
#<AboutClasses::Dog:0x6255f0>

你能解释一下吗:

  • 什么词AboutClasses是吗?
  • 第二个结果中的符号 #<xxxxx> .我知道这是一个实例,但为什么要放 #<>周围?

最佳答案

Searching GitHub产生一堆包含 require 'about_classes' 的 Ruby 源文件, 它们都在 ruby​​_koans 的分支中。

事实上,文件about_classes.rb文件在名为 AboutClasses 的类中包含一个名为 fido 的 Dog 类.我猜你已经加载了这个类或者正在执行它。

回答您关于 #<AboutClasses::Dog:0x6255f0> 的具体问题:

  1. 术语“AboutClasses”只是一个类或模块名称。您可以嵌套它们,以便外部类或模块充当命名空间。这样,您的 Dog 类就不会与您加载的其他一些 gem 中的 Dog 类发生冲突。嵌套它们时,名称由 :: 分隔.

  2. 符号#<ClassName:MemoryAddress>只是一个符号。井号和尖括号只是为了将它与其他一切区分开来。

关于ruby - 在 Ruby 中,什么是 AboutClasses 类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10640549/

相关文章:

ruby - 解析字符串时使用 case 语句时避免/删除 nil

ruby - 检查字符串是否包含 'http://' 和 '.jpg'

mysql - 崩溃的 Ruby/MySQL

ruby - 如何使用 IronRuby 解析 Ruby 代码?

ruby-on-rails - 在 Mac OS Mavericks 中安装 ruby​​ 1.9.3

ruby-on-rails - 为什么在 rails 中使用 _form.html.erb

ruby - File.open ('file.txt' ) 与 File.open ('file.txt' ).readlines

ruby - 在 Vim 中使用 Ctags 跳转到 Ruby bang 方法

ruby-on-rails - 如何用不同的用户运行nginx主进程

mysql - Rails 异常 Mysql::Error: query: not connected: SHOW FULL FIELDS FROM `publications`