Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么Ruby公开符号?_Ruby_Symbols - Fatal编程技术网

为什么Ruby公开符号?

为什么Ruby公开符号?,ruby,symbols,Ruby,Symbols,为什么Ruby公开符号以供显式使用?这不是解释器/编译器通常处理的那种优化吗?问题的一部分是Ruby字符串是可变的。由于Ruby分配的每个字符串都必须是独立的(它不能缓存短字符串/普通字符串),因此使用Symbol类型可以方便地让程序员拥有本质上不可变的、节省内存的字符串 此外,它们与enum有许多相同的特性,但对程序员来说不那么麻烦。在其他类似语言中,Ruby符号被用来代替字符串常量。除了性能优势外,它们还可以用于在语义上区分字符串数据和更抽象的符号。由于语法上的不同,它们在代码上可以很清楚地

为什么Ruby公开符号以供显式使用?这不是解释器/编译器通常处理的那种优化吗?

问题的一部分是Ruby字符串是可变的。由于Ruby分配的每个字符串都必须是独立的(它不能缓存短字符串/普通字符串),因此使用
Symbol
类型可以方便地让程序员拥有本质上不可变的、节省内存的字符串


此外,它们与enum有许多相同的特性,但对程序员来说不那么麻烦。

在其他类似语言中,Ruby符号被用来代替字符串常量。除了性能优势外,它们还可以用于在语义上区分字符串数据和更抽象的符号。由于语法上的不同,它们在代码上可以很清楚地区分开来。

看一看这篇文章。

你可能还想看一看