【发布时间】:2012-07-11 22:47:27
【问题描述】:
我第一次尝试学习 Ruby 是在 2 年前,现在我又开始了。我停止的原因是因为我无法理解 Symbol 类。现在我又在同一点上,完全迷失在何时以及为什么使用符号。我已经阅读了 Stackoverflow 上的其他帖子,并在 Google 上搜索了一些解释。不过我还没看懂。
首先我认为符号只是一种创建某种“命名常量”的方法,而不必经历与 Java 相同的过程。
:all
而不是用任意值public static final String ALL = 8;制作一个常量
但是,当您在例如attr_accessor :first_name etc.
Symbols 只是一个轻量级的 String 类吗?我在理解应该如何解释、何时以及如何在我自己的类和框架中使用符号时遇到问题。
【问题讨论】:
-
如果它让你感觉更好,Ruby 的创建者自己并不真正了解何时使用字符串以及何时使用符号。
Class.new.methods在 1.8 中返回一个字符串数组,在 1.9 中返回一个符号数组。 :)