Ruby 符号类
符号类的对象代表Ruby解释器中的名字。它们通常通过使用 :name literal 语法或使用 to_sym 方法生成。类似的Symbol对象会在程序执行期间为一个给定的名字字符串创建,而不考虑名字的内容和含义。
例子
输出
解释: 如果Max在上下文1中是常数,在上下文2中是方法,在上下文3中是类,那么这个:Max在所有给定的上下文中都是同一个对象。
类方法
all_symbols : 该方法返回当前存在于Ruby的符号表中的符号数组。
例子
输出
实例方法
- id2name : 该方法返回一个字符串,该字符串是sym的表示。
示例:
输出:
- inspect : 该方法以符号字面的形式返回sym的表示。
示例:
输出:
- to_s : 该方法与Symbol#id2name类似。该方法返回对应于符号的名称或字符串。
示例:
输出:
- ** <=> : ** 它在调用to_s后将sym和other_sym进行比较。如果sym小于other_sym,它返回-1;如果sym等于other_sym,它返回0;如果sym大于other_sym,它返回+1。
示例:
输出:
- == : 如果符号等于obj,返回true,否则返回false。
示例:
输出:
- [] : 该方法返回
sym.to_s[]
的值。
- capitalize : 这个方法类似于Symbol#to_s。
- casecmp : 这个方法是符号<=$gt;的不区分大小写的版本。它将返回-1、0、1或nil。它适用于A-Z/a-z,而不是所有的Unicode。在这个方法中,如果两个符号的编码不兼容或者other_sym不是一个符号,则返回nil。
示例:
输出:
- downcase : 这种方法将大写字母转换为小写字母。
示例:
输出:
- length : 该方法返回给定符号的长度。
示例:
输出:
- slice : 这个方法与Symbol#to_s类似。这个方法为你提供了从符号的给定索引上的字符。
示例:
输出:
- swapcase : 这个方法是对sym.com中的字符进行大小写转换。换句话说,它将小写字母转换成大写字母,将大写字母转换成小写字母。
示例:
输出:
- upcase : 这种方法将小写字母转换为大写字母。
示例:
输出:
- to_proc : 该方法返回一个Proc对象,该对象通过sym回答给定的方法。
示例:
输出:
- to_sym 该方法返回一个对应于对象的符号。这里sym已经是一个符号了,所以在这种情况下它会返回它。
参考资料: https://ruby-doc.org/core-2.5.0/Symbol.html#method-i-5B-5D