Ruby学习: 全局变量 和常量
一、全局变量
ruby中支持全局变量,ruby中的全局变量有如下几个特点:
1)标识符以$开头标记
2)全局变量可以在程序的任何地方加以引用
3)全局变量无需提前进行变量声明。引用尚未初始化的全局变量时,其值为 nil。
我们下面来看例子
class Demo
def print
puts $a
end end puts $a #引用未声明的全局变量,$a这时值为nil demo = Demo.new
demo.print #类方法中引用未声明的全局变量,$a这时值为nil $a=12
demo.print #输出为12,因为这时$a已经有值了
需要说明的是,在实际编码中我们尽量不要自己定义全局变量,使用全局变量是非常不好的一个编程方式。
二、常量
ruby中的常量,必须在类中定义,不能定义到方法中,常量标识符的首字母必须大写。
举例:
class Demo
Pi = 3.14 def print
puts Pi
end end #创建对象,调用对象的方法
puts Demo::Pi demo = Demo.new
demo.print Demo::Pi = 4 #会有警告,但不会出错,而且修改能生效 demo.print
注意,和其它语言区别的是。常量的值可以在类的外部被修改 (不能在类的方法中被赋值修改),虽然会报警告,但不会出错。
Ruby学习: 全局变量 和常量的更多相关文章
- ruby学习笔记(3)- 新手入门
这里是一个Ruby开发的快速参考指南: Ruby是什么 ? Ruby是一种纯粹的面向对象编程语言.它由日本松本幸创建于1993年. Ruby是一种通用的解释编程语言如Perl和Python. IRb是 ...
- ruby 学习笔记 1
写ruby blog 系统的记录下.也是对我学ruby的点滴记录. 先介绍下我的学习环境.系统:ubuntu12.04文档:techotopia ,ruby文档,the hard way learn ...
- Ruby学习心得之 Linux下搭建Ruby环境
作者:枫雪庭 出处:http://www.cnblogs.com/FengXueTing-px/ 欢迎转载 Ruby学习心得之 Linux下搭建Ruby环境1.前言2.Linux下安装Ruby环境 一 ...
- Ruby学习之mixin
直接上代码: module Action def jump @distance = rand(4) + 2 puts "I jumped forward #{@distance} feet! ...
- ruby学习网站
Ruby官方中文网(推荐): https://www.ruby-lang.org/zh_cn/ 国内非常不错的Ruby学习教程网站(推荐): http://www.yiibai.com/ruby Ru ...
- Ruby学习笔记4: 动态web app的建立
Ruby学习笔记4: 动态web app的建立 We will first build the Categories page. This page contains topics like Art, ...
- java虚拟机学习-触摸java常量池(13-1)
java虚拟机学习-深入理解JVM(1) java虚拟机学习-慢慢琢磨JVM(2) java虚拟机学习-慢慢琢磨JVM(2-1)ClassLoader的工作机制 java虚拟机学习-JVM内存管理:深 ...
- ruby学习笔记(1)-puts,p,print的区别
ruby学习笔记-puts,p,print的区别 共同点:都是用来屏幕输出的. 不同点:puts 输出内容后,会自动换行(如果内容参数为空,则仅输出一个换行符号):另外如果内容参数中有转义符,输出时将 ...
- ruby 学习笔记 2 -变量
变量 在ruby的世界里,变量有5种,全局变量 局部变量 实例变量 常量 类变量以及伪变量 常用的: 全局: 在全局使用,使用$开头,因为是全局的,所以在任何的代码例子中都可以改变其值,造成混乱,所以 ...
随机推荐
- Nhibernate初入门基本配置(一)
文章出处:http://www.cnblogs.com/GoodHelper/archive/2011/02/14/nhiberante_01.html 一.NHibernate简介 什么是?NHib ...
- 深入理解 IE haslayout
转载自Bubblings Blog 原文地址:http://riny.net/2013/haslayout/ 1.什么是haslayout layout是windows IE的一个私有概念,它决定了元 ...
- MSSQL常用函数大全
一.字符转换函数1.ASCII()返回字符表达式最左端字符的ASCII 码值.在ASCII()函数中,纯数字的字符串可不用‘’括起来,但含其它字符的字符串必须用‘’括起来使用,否则会出错. 2.CHA ...
- 注册表:无法打开 XXX 由于某个错误无法打开该密钥。详细信息:拒绝访问
错误原因:没有注册表用户权限. 正确添加用户权限的步骤如下:(跟着图片步骤) 右击该项,权限: 选中想要添加为当前所有者的用户后,点击应用.如果没用户显示,可以从“其他用户或组”中添加进来. 权限添加 ...
- ubuntu 中 ThinkPHP 上传文件无法得到文件名
在 419-424 行.
- createNewFile创建空文件夹与createTempFile创建临时文件夹
创建要注意的地方如下: <pre name="code" class="java"> File类的createNewFile根据抽象路径创建一个新的 ...
- 大概看了一天python request源码。写下python requests库发送 get,post请求大概过程。
python requests库发送请求时,比如get请求,大概过程. 一.发起get请求过程:调用requests.get(url,**kwargs)-->request('get', url ...
- IOS 学习笔记(6) 控件 文本域(UITextField)的使用方法
UITextField控件的诸多特性都和UITextView相似,比如成为输入文本焦点时键盘自动显示,支持长按弹出动作选项,能够接收输入事件(开始输入,修改内容,结束输入和点击回车等). 1.特有的特 ...
- 部署vc2008开发的程序(vcredist_x86是其中一个办法)
如果你编译了一个VC2008的默认的CRT/MFC的应用程序,如果目标部署电脑上没有安装相应的VC2008的动态库,当运行你的程序的时 个,会出现如下错误信息. 这是因为程序使用了基于VC2008 ...
- Sicily-1134
一. 题意 按照孩子们需要的积木块数排序(从小到大),先处理需要积木块数少的孩子. 二. 代码 // // main.cpp // sicily-1134 // // Create ...