Ruby 教程 目录

Ruby 变量和常量

变量的定义与使用

在 Ruby 中,变量用于存储数据。Ruby 的变量命名非常灵活,但通常需要遵循一定的约定来提高代码的可读性。变量名可以包含字母、数字和下划线,但不能以数字开头。此外,变量名是区分大小写的。

局部变量

局部变量的作用域仅限于定义它的代码块或方法。它们通常用来保存方法内的临时值。

在这个例子中,sum 是一个局部变量,只在 calculate_sum 方法内部有效。

实例变量

实例变量以 @ 开头,作用域为当前对象。它们常用于类的实例方法中,以保持状态信息。

-- -------------------- ---- -------
----- ------
  --- ----------------
    ----- - ----
  ---

  --- -----
    ---- ------- ----------
  ---
---

------ - -------------------
------------ - -- ------- -------

在这个例子中,@name 是一个实例变量,它保存了 Person 类的实例名称。

类变量

类变量以 @@ 开头,作用域为整个类。它们被所有实例共享,并且可以在类的不同实例之间传递数据。

-- -------------------- ---- -------
----- -------
  ------- - -

  --- ----------
    ------- -- -
  ---

  --- ----------
    -------
  ---
---

-------- - -----------
-------- - -----------

---- ------------- - -- -

在这个例子中,@@count 是一个类变量,用于跟踪创建了多少个 Counter 实例。

全局变量

全局变量以 $ 开头,作用域为整个程序。它们可以被任何地方访问,因此应谨慎使用,以免导致难以调试的问题。

在这个例子中,$global_var 是一个全局变量,可以在程序中的任何位置访问。

常量

常量是一种特殊的变量,其值一旦设定后就不能再改变。常量的名字通常全部大写,以便与其他类型的变量区分开来。

常量的定义与使用

常量定义类似于变量,但名字全大写。常量的值一旦被赋值后,除非在 const_set 方法的帮助下,否则不能更改。

在这个例子中,PI 是一个常量,用于表示圆周率。在 circle_area 方法中使用这个常量来计算圆的面积。

常量的作用域

常量的作用域规则与局部变量相似,但更严格。如果在一个类或模块中定义了一个常量,那么它只能在该类或模块中被访问。

-- -------------------- ---- -------
----- ------
  -- - -------

  --- ------------
    -- - ---------
  ---
---

------ - ----------
---- -------------- - -- --------

在这个例子中,PI 是一个类常量,只能在 Circle 类中被访问。

变量和常量的命名约定

虽然 Ruby 允许自由命名变量和常量,但为了提高代码的可读性和维护性,建议遵循一些常见的命名约定:

  • 局部变量:使用小写字母和下划线。
  • 实例变量:以 @ 开头,后面跟小写字母和下划线。
  • 类变量:以 @@ 开头,后面跟小写字母和下划线。
  • 全局变量:以 $ 开头,后面跟小写字母和下划线。
  • 常量:使用全部大写字母和下划线。

这些命名约定不仅帮助开发者更容易理解代码,还能使代码风格更加一致。

纠错
反馈