• Ruby中的Symbol与字符串


    刚开始学Ruby,一下子搞不清其中的Symbol(变量需要加:)和字符串有什么区别,为这么要为语言设计这么一个东西。让我很迷惑。

    首先,字符串对象,是不同的。比如"String" "String"就不同,实例不同。

     "String".equal?("String")

    这函数返回的是false。

    但是相同名的符号,实例就相同了

    :Str.equal?(:Str)

    这函数返回的是true。

    那么这有什么作用呢?如果你建立一个Hash table:

    Hash_Tab = {

    "one" => 1,

    "two" => 2,

    .......

    }

    当我们便利这张表的时候,每次循环,但又不修改key,它会新创建很多字符串对象,会增加处理器的开销,那么就可以改成Symbol。

    Hash_Tab = {

    :one => 1,

    :two => 2,

    .......

    }

    当然,符号和字符串都可以用来表示文本的一种方式。它们之间也可以随意转换

    references:

    http://blog.csdn.net/besfanfei/article/details/7966987

    http://blog.csdn.net/besfanfei/article/details/7966850

  • 相关阅读:
    day01--计算机硬件基础笔记
    22 Jun 18 Django,ORM
    21 Jun 18 Django,ORM
    20 Jun 18 复习, mysql
    20 Jun 18 Django,ORM
    19 Jun 18 复习, 正则表达式
    19 Jun 18 Django
    15 Jun 18 复习, shutil模块
    15 Jun 18 Django
    14 Jun 18 复习, form表单
  • 原文地址:https://www.cnblogs.com/foohack/p/4449334.html
Copyright © 2020-2023  润新知