2.9Ruby语言的变量(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/rubybasic/1483.html

发表评论

登录后才能评论