Ruby中变量引用时的一些注意点

 更新时间:2015年07月13日 11:57:28   投稿:goldensun  
这篇文章主要介绍了Ruby中变量引用时的一些注意点,被当作变量或被当作方法调用的情况,需要的朋友可以参考下

在表达式中,当Ruby看到像a这样的名字时,它需要判断a是一个局部变量引用还是对没有参数的方法a的调用。Ruby使用一种启发式的方法来判断这种情况。当Ruby解析源代码文件时,它会记录所有已经被赋值的符号。它认为这些符号是变量。以后当遇到一个既可以是变量又可以是方法调用的符号时,Ruby会检查是否已经对该符号进行了赋值。如果是,那么把该符号当作变量,否则当作方法调用。下面是描述这种情况的一个人为设计的例子。
 

def a
  print "Funciton 'a' called\n"
  99
end
 
for i in 1..2
  if i ==2
   print "a=",a,"\n"
  else
   a=1
   print "a=",a,"\n"
  end
end

  输出结果:

a=1
Function 'a' called
a=99

  当解析的时候,Ruby看到第一个print语句使用了a,并且由于还没有遇到对a的任意赋值语句,所以把它当作方法调用。但是当解析到第二个print语句时,由于Ruby遇到了对a的一个赋值语句,所以把它当作变量

  注意赋值语句不一定被执行--只要Ruby看到它了就可以。下面的程序不会导致错误

a=1 if false;a

相关文章

  • Jekyll静态网站后台引擎使用教程

    Jekyll静态网站后台引擎使用教程

    今天,我就来示范如何在github上搭建Blog,你可以从中掌握github的Pages功能,以及Jekyll软件的基本用法。更重要的是,你会体会到一种建立网站的全新思路。
    2016-04-04
  • Ruby中的p和puts的使用区别浅析

    Ruby中的p和puts的使用区别浅析

    这篇文章主要介绍了Ruby中的p和puts的使用区别浅析,本文用一个实例讲解了它们之间的区别,并总结出结论,需要的朋友可以参考下
    2015-03-03
  • 在Ruby中处理日期和时间的教程

    在Ruby中处理日期和时间的教程

    这篇文章主要介绍了在Ruby中处理日期和时间的教程,包括时间的格式化等基本用法,需要的朋友可以参考下
    2015-04-04
  • Ruby学习笔记一

    Ruby学习笔记一

    学习ruby有段时间了,记录下自己的学习心得并分享几个例子给大家
    2014-07-07
  • Redis集群搭建全记录

    Redis集群搭建全记录

    本文给大家总结了redis集群的概念等基础知识,以及个人在搭建redis集群是所遇到的问题及解决方法,非常的详细,有需要的小伙伴可以参考下
    2017-09-09
  • CentOS7下安装Ruby3.2.4的实施路径详解

    CentOS7下安装Ruby3.2.4的实施路径详解

    在CentOS 7系统上安装Ruby 3.2.4版本需要先安装RVM作为版本管理工具,安装过程涉及到安装GPG的key、RVM的最新稳定版本以及Ruby的前置依赖,下面给大家介绍CentOS7下安装Ruby3.2.4的实施路径,感兴趣的朋友跟随小编一起看看吧
    2024-09-09
  • Ruby 字符串处理

    Ruby 字符串处理

    Ruby 字符串处理...
    2007-11-11
  • Ruby中钩子方法的运用实例解析

    Ruby中钩子方法的运用实例解析

    这篇文章主要介绍了Ruby中钩子方法的运用实例解析,钩子方法的使用时Ruby入门学习中的基础知识,需要的朋友可以参考下
    2016-06-06
  • mac os gem安装json出现error failed的解决办法

    mac os gem安装json出现error failed的解决办法

    这篇文章主要介绍了mac os gem安装json出现error failed的解决办法,系统是mac os Mavericks,失败提示Failed to build gem native extension,需要的朋友可以参考下
    2014-06-06
  • 详解Ruby设计模式编程中对单例模式的运用

    详解Ruby设计模式编程中对单例模式的运用

    这篇文章主要介绍了Ruby设计模式编程中对单例模式的运用,讲到了包括对Singleton模块的使用,需要的朋友可以参考下
    2016-03-03

最新评论