Symbol
对象用于表现
Ruby
解释器内的名字或一些字符串。它们自动地由
:name
或
:”string”
字面值自动生成。在程序运行期间,对于给定名字的字符串将创建同一
Symbol
对象,而不管名字的含意和上下文环境。
也就是说,符号
Symbol
是一种很专一的对象,计算时(就算是包含展开式),只要其结果是同一个字符串的话,它总是返回同一对象。例如,如果
Fred
是一个在上下文环境中,及另一个方法中,另一个类中的常量,则
Symbol:Fred
将在这三个上下文环境中是同一个对象。
既然
Symbol
对象是用来表示符号类,你就可以将一些字符串与
Symbol
对象组成一种一对一的对应关系。
在
Ruby
脚本中符号有二种书写方法:
:symbol
‘symbol’.intern
先看看第一种书写方式。下面是一些用第一种书写方式的符号例子:
:class
:lvar
:method!
:andthisis?
:$gvar
:@ivar
:@@cvar
:+
等等
它的语法如下:
:
标识符
:
变量名
:
操作符
可以用于得到符号
Symbol
。在使用字面值来表示符号时,
’:’
后面只能是标识符、方法名(包括
‘!’
、
’?’
等后缀)、变量名
(
包括
’$’
等前缀
)
或可重定义的操作符
(
除此之外将引发语法错误,即操作符必须是那些可以作为方法进行再定义的操作符
)
。
此外在高版本中,你也可以使用第二种书写方式的符号:
p
:’foo-bar’
#=> :”foo-bar”
p
:”foo-bar”
#=> :”foo-bar”
p
%s{foo-bar}
#=> :”foo-bar”
在这种表示法中,可以定义任意的符号
(
但不能包含
”<chmetcnv tcsc="0" numbertype="1" negative="False" hasspace="False" sourcevalue="0" unitname="”">0”</chmetcnv>
)
。
在
:”…”
中,反斜线表示法
(“t,n,r,f”
等等
)
和展开式
(“#{
表达式
}”
)
都是有效的。
让我们再看看前面提到的
:Fred
的例子:
module One
class Fred
end
$f1 = :Fred
End
module Two
Fred = 1
$f2 = :Fred
end
def Fred()
end
$f3 = :Fred
#
由下面可以看出是同一个 Symbol
对象。
$f1.id
#=> 2514190
$f2.id
#=> 2514190
$f3.id
#=> 2514190
下面文字来自于:
http://anw.stikipad.com/ocean/show/Symbol
一開始接觸 ruby 時常會被 :symbol 這類寫法搞的很困惑, 在 ruby 中它們被稱為 “Symbol”
分享到:
相关推荐
本主题主要探讨如何将这些Flex Symbol对象与数据库进行交互,以便于数据的存储和读取。 一、Flex Symbol的基本概念 Flex Symbol是ArcGIS Flex API中的核心组件,它定义了地图对象(点、线、面)的视觉表示。有三种...
5. **Symbol对象**:Symbol用于定义图层中几何对象的外观,包括颜色、样式、填充等。有简单符号(SimpleSymbol)和复杂符号(ComplexSymbol)两种,如标记符号、线条符号和填充符号。 6. **Renderer对象**:...
12. **Symbol对象(ES6新增)** Symbol是一种新的原始数据类型,用于创建唯一的标识符。`Symbol()`函数生成一个新的symbol,`Symbol.for()`用于全局注册并获取符号。 13. **Map与Set对象(ES6新增)** Map对象...
6.2 Symbol对象 6.3 制作专题图 6.4 地图的标志 6.5 如何与地图进行互动 7. 地图的输出 7.1 地图的打印输出 7.2 地图的转换输出 8. 空间数据管理 8.1 Geodatabase的基础知识 8.2 Worksapc……
在本讲中,我们将深入探讨如何通过编程方式来控制地图的显示,主要涵盖颜色对象、symbol对象以及颜色模型的转换。 首先,我们关注的是颜色对象的使用。颜色是地图可视化中至关重要的元素,它可以帮助用户快速识别和...
MarkerSymbol用于表示点对象的视觉表现,包括13个子类,如ArrowMarkerSymbol(箭头)、BarChartSymbol(条形图)、CharacterMarker3DSymbol(三维字体)、CharacterMarkerSymbol(字体)、PictureMarkerSymbol(图片...
4. 添加标注和标记:使用Label和Symbol对象在地图上添加文字标注和图标标记。 5. 编程交互:响应用户的地图操作,如点击、拖动等,实现自定义功能。 MapX教程通常会涵盖这些基础内容,并逐步深入到高级主题,如地图...
在使用 Add Event Method 时,需要注意 Geo Event 对象、Point 对象和 Symbol 对象之间的关系。 Add Geo Data Set Method ----------------------- Add Geo Data Set Method 是 Data Connection 对象的一个方法,...
ES6 Symbol 是JavaScript语言新增的一种原始数据类型,它表示独一无二的值,确保了在对象属性名中的唯一性,从而避免了属性名冲突的问题。在对象中使用Symbol的主要优点包括: 1. **声明Symbol**: 创建一个Symbol...
Symbol 对象是一个 symbol primitive data type 的隐式对象包装器。 它是JavaScript语言的第七种数据类型,前6种分别是:Undefined、Null、Boolean、String、Number、Object。 语法 Symbol([description]) ...
- **MarkerSymbol对象**:讨论MarkerSymbol类的特性和使用方法。 - **LineSymbol对象**:介绍LineSymbol类的功能。 - **FillSymbol对象**:解释FillSymbol类的用途。 - **TextSymbol对象**:探讨TextSymbol类的...
在ArcGIS JavaScript API中,我们可以使用Polyline对象来创建折线,并通过Symbol对象定制箭头的样式,包括箭头的大小、颜色和方向。通过调整折线的顶点位置和顺序,即可动态改变箭头的形态和指向。 四、军事标绘...