1.7Ruby语言的变量(Variable)和常量(Constant)

变量遵循标识符的命名规则,一般以小写英文字母开头并且全部为小写。

1.全局变量(Global Variable)

以$开头。作用域:全局使用。定义在类和模块之外。

2.类变量(Class Variable)

以@@开头。作用域:可被类(或子类)方法、实例方法(或子类实例方法)使用,可以被子类继承,不可以直接被对象调用。

3.实例变量(Instance Variable)

以@开头。作用域:可被实例方法使用,不可以被子类继承,不可以直接被对象调用。

4.局部变量(Local Variable)

以英文小写字母或者_开头。又名本地变量。作用域:可被方法内的其他成员使用,在方法外不可用。

局部变量的作用域虽然都是局部的,但是还可以细分为:

#形参(argument),实参(parameter)
方法形参,方法局部变量,方法实参
块形参,块局部变量,块实参

5.预定义变量(Predefined Variable)

预定义变量是指Ruby预先定义好的变量,它全部都是以$开头的变量,因此可以像全局变量那样引用。比如:$LOAD_PATH、$stdin、$stdout等等。

6.常量(Constant)

常量遵循标识符的命名规则,任何以大写字母开头的引用(包括类名和模块名)都是常量,不过狭义的常量命名全部为大写字母(多单词加下划线),而类名和模块名用PascalCase命名法。

对于程序中多次引用且固定不变的值,我们会用常量定义。常量不鼓励大家变更值,虽然Ruby可以变更值,当变更的时候,Ruby会发出警告。

常量的作用域是全局的,所以可以在一个Ruby程序的任何地方使用它们而不必考虑作用域。

7.预定义常量(Predefined Constant)

预定义常量是指Ruby预先定义好的常量,比如:RUBY_VERSION(Ruby的运行版本)、RUBY_PLATFORM(Ruby运行平台)、ARGV(命令行参数组)等等。

8.伪变量(Pseudo Variable)

伪变量是Ruby预先定义好的代表某特定值的特殊变量,因此即使我们在程序中给伪变量赋值,它的值也不会改变,会产生错误。Ruby中,nil、true、false、self、_ _FILE_ _、_ _LINE_ _、_ _ENCODING_ _都是伪变量。它们表面上虽然看着像变量,但实际的行为又与变量有差别,因此称为伪变量。

原创文章,作者:huoxiaoqiang,如若转载,请注明出处:https://www.huoxiaoqiang.com/ruby/rubylang/1483.html

(2)
上一篇 2020年7月6日 04:30
下一篇 2020年7月8日 01:30

相关推荐

  • 1.9Ruby语言的块(Block)以及带块的方法

    块 又被称为 代码块 ,位于do~end(包括do和end关键字)或者花括弧{~}(包括花括弧)中间的代码就是 代码块 。代码块不可单独存在,只有出现在一个方法调用之后才是合法的。 程序的控制流首先执行方法,当遇到yield时,控制流会从方法转移到那个与方法调用相关联的代码块中,当程序执行完代码块之后,方法重新获得控制…

    Ruby语言教程 2020年7月9日
    01.0K0
  • 2.3Ruby语言的抽象(Abstract)类

    我们可以定义一个抽象类,在抽象类内部定义一些抽象方法,这些方法留待子类进行实现。抽象的反面是 具体(concrete) ,如果一个继承自抽象类的类实现了祖先类中的所有的抽象方法,它就是具体类。

    Ruby语言教程 2020年8月3日
    03560
  • 1.11Ruby语言的两种闭包(Closure):Proc和Lambda

    形成闭包的两个特征: 块需要调用外围方法的参数或局部变量 外围方法有了返回以后,外围方法的参数或局部变量没有立即被销毁,依然存在于内存中,直至块执行完毕 首先回顾一下:代码块可以使用在其外定义的方法参数和方法局部变量。比如 一旦multiply方法有了返回以后,n方法参数将会被销毁,所以,此时还没有形成闭包。那如何形成…

    Ruby语言教程 2020年7月11日
    06270

发表回复

登录后才能评论