Day 26 Ruby Symbol

在 Ruby 内有符号(Symbol)这个物件,他跟字串的用法蛮像的,但本质上则不一样。
究竟 Symbol 到底是什麽呢? 让我们来看看吧!

阿修说文解字

何谓 Symbol

  • 有名字的物件,以:开头,後面第一个字不能为数字
  • id 固定
  • 因为 id 固定,查找、比较的速度比字串还快
  • 旧版 ruby 用完记忆体不会归还 (Memory Leak),但新版 Ruby 用完会归还
  • 本身就是值,不能拿来当变数用

范例(id 固定):

A = :abc
B = "abc"

puts A.object_id
puts B.object_id

在 Ruby 内所有物件都有 id ,可以用 .object_id 来找到该物件的 id。
如果重复执行以上范例会发现 A 的 id 不会变化,而 B 的 id 会一直变化。

范例(本身就是值,不能拿来当变数用):

:abc = "aaa"

以上范例会直接喷错:
syntax error, unexpected '=', expecting end-of-input :abc = "aaa"


<<:  改变的三面向

>>:  [ Day 26 ] - 阵列的资料处理 - findIndex

#25 Click! Serve! Plus

今天我们来为我们昨天做的「Click! Serve!」增加一些「设定」。 增加 pkg 设定 昨天我...

ESP32_DAY9 开发好夥伴-电阻

今天来介绍另外一个开发好夥伴-电阻!! 电阻 电阻(resistance)是表示电子在物质中移动所...

18 程序竞赛前中後准备实例 (NCPC 2021)

昨天写完「程序竞赛前中後准备技巧」後,今天下午便紧接着 NCPC,因此想趁这个机会做个纪录,顺便为上...

EC的农地辣麽大,作物辣麽多,来认真找作物了(1)ES的逐一说文解字-搜寻

来到第28天了,却觉得头很痛 ES的收寻知识点有点大,要细讲自己也讲不清楚 要粗讲,可能又讲的不清楚...

[ Day 23 ] - 阵列资料处理 - map

阵列资料处理 - map 特性 可以将原始阵列经过处理後,重新组合回传一个新阵列 不会影响原始阵列 ...