ruby的局部变量

局部变量由小写字母或下划线(_)开头.局部变量不像全局和实变量一样在初始化前含nil值.

ruby> $foo
nil
ruby> @foo
nil
ruby> foo
ERR: (eval):1: undefined local variable or method `foo' for main(Object)

对局部变量的第一次赋值做的很像一次声明.如果你指向一个未初始化的局部变量,Ruby解释器会认为那是一个方法的名字;正如上面所见错误

信息的.

一般的,局部变量的范围会是

proc{...}
loop{...}
def...end
class...end
module...end

整个程序(除非符合上面某个条件)

下面的例子,define?是一个检查标识符是否已定义的操作符.如果已定义它将返回标识符的描述,否则返回nil.正如你所见的,bar的范围是

loop的局部变量;当loop退出时,bar无定义.

ruby> foo = 44; print foo, "n"; defined? foo
44
"local-variable"
ruby> loop{bar=45; print bar, "n"; break}; defined? bar
45
nil

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索局部变量
, 变量
, ruby
, 标识符
, loop
, 局部
foo
ruby 局部变量、ruby局部变量作用域、ruby 变量的引用、正确的ruby变量、ruby 变量,以便于您获取更多的相关知识。

时间: 2024-08-02 10:26:23

ruby的局部变量的相关文章

详细解析Ruby中的变量

这篇文章主要介绍了详细解析Ruby中的变量,是Ruby学习中最基础的知识之一,需要的朋友可以参考下 变量持有要使用的程序的数据的存储位置. Ruby支持的有五种类型的变量.在前面的章节中已经经历了一个简短描述以及这些变量.本章中介绍的这五种类型的变量. Ruby的全局变量: 全局变量以$开头.未初始化的全局变量的值是零,并使用-w选项产生警告. 全局变量的赋值会改变全局状态.这是不推荐使用全局变量.他们使得程序的含义模糊. 下面是一个例子显示使用全局变量. ? 1 2 3 4 5 6 7 8 9

详细解析Ruby中的变量_ruby专题

 变量持有要使用的程序的数据的存储位置. Ruby支持的有五种类型的变量.在前面的章节中已经经历了一个简短描述以及这些变量.本章中介绍的这五种类型的变量. Ruby的全局变量: 全局变量以$开头.未初始化的全局变量的值是零,并使用-w选项产生警告. 全局变量的赋值会改变全局状态.这是不推荐使用全局变量.他们使得程序的含义模糊. 下面是一个例子显示使用全局变量. #!/usr/bin/ruby $global_variable = 10 class Class1 def print_global

ruby中如何调用与局部变量同名的私有方法

    如果ruby中一个局部变量名和私有方法名同名的话,默认该名称被解释为变量而不是方法: x=10; def x;puts "what?" end 当你输入x实际不能执行x方法.解释器只把x解释为变量.而且undef只能对方法而不能对变量下手,所以undef x仍然不行,变量还在那里!一种解决方法是将x方法转换为一个method,然后调用: x_f = method(:x) x_f[] 或者还有一种方法,就是方法别名!你可以指定x的一个别名,这时x肯定会解释为方法: alias n

使用Eclipse+RDT插件进行Ruby开发

简介 本文介绍如何在Eclipse中使用Ruby开发工具(RDT)插件进行Ruby开发.本文将有益于那些想学习如何使用Eclipse基础架构来进行Ruby开发的Ruby开发者,也有益于对Ruby开发感兴趣的Java开发者. 一. 为什么使用Ruby? 现在,为什么众多的Java开发者都关注Ruby?Ruby,是10年以前在日本创建的一种通用目的脚本语言,这是一种纯面向对象的语言.不同于Java技术,Ruby中的一切都是对象.Ruby的语法主要来源于Smalltalk,Python和Ada.象Ja

Ruby的变量与赋值简析

变量与赋值 至此,你是否注意到前面所有的示例代码中都缺少某种东西?难道你必须输入常数,实例变量或类变量?绝对不是!这正是Ruby的真正面向对象的天性的一部分.为此,首先让我们看一下Ruby中以前的普通变量.至此,你已经创建了很多Rectangle实例,但是你并没有把它们保留多长时间.比方说,你想要把一个变量赋值给你创建的一个Rectangle实例: myRectangle=Rectangle.new(4,5) 在Ruby中这是完全有效的代码,而且根本不需要另一行代码来把myRectangle类型

ruby的变量

Ruby有三类变量,一种常量和两种严格意义上的伪变量(pseudo-variables).变量和常量都没有类型.虽然无类型变量存在一定的缺点,但却有更多的优点并很好的符合Ruby快速简便(quick and easy)的哲学精神. 在大多数语言里,变量都必须指定其类型,可更改性(是不是个常数)和范围;由于类型的不存在,剩下的东西也可由变量名字很快确定(你马上会看见),在Ruby里我们不需要变量声明. 由首字母标识符将其分类: $ 全局变量 @ 实变量 [a-z] 局部变量 [A-Z] 常量 唯一

ruby way之动态特性之一

1 动态的evaluate代码 全局的方法eval 编译并且执行一段包含ruby代码片断的字符串,这是一个很power的机制,因为它允 许你建造在运行时 执行的代码.看下面的例子: Ruby代码 parameters = {} ARGF.each do |line| name, expr = line.split(/\s*=\s*/, 2) parameters[name] = eval expr end 假设输出是这样的: 引用 a = 1 b = 2 + 3 c = `date` 然后你的p

Ruby语言概述

Ruby是面向对象的编程语言,她追求的是"简便快捷的面向对象编程".Ruby是解释型语言,因此不需编译即可快捷地编程.同时Ruby具有类似Perl的强大的文本处理功能,她可并不只是个玩具,您可以用她来进行实用的编程.此外,您还可以很方便地使用C语言来扩展Ruby的功能,因此可以把她当作各种库的前端来使用. 若您曾经"想要一种简单的面向对象的语言",或者认为"Perl的功能虽然好用,但它的语法真让人受不了",又或者觉得"lisp系列语言的

Ruby多线程编程初步入门

  这篇文章主要介绍了Ruby多线程编程初步入门,线程是Ruby编程学习当中的重点和难点,需要的朋友可以参考下 传统程序有一个单独的线程执行,包含该程序的语句或指令顺序执行直到程序终止. 一个多线程的程序有多个线程的执行.在每个线程是按顺序执行的,但是在多核CPU机器上线程可能并行地执行.例如,通常情况下在单一CPU的机器,多个线程实际上不是并行执行的,而是模拟并行交叉的线程的执行. Ruby的可以使用 Thread 类很容易地编写多线程程序. Ruby线程是一个轻量级的和高效的在代码中实现并行