zoukankan      html  css  js  c++  java
  • 3.ruby语法基础,全部变量,实例变量,类变量,局部变量的使用和注意的要点

    1.ruby的全局变量的概念和Java的全局变量的概念不同,

      ruby的全局变量是以$符号开头的,如果给全局变量的初始化值为nil会出现警告。

      赋值给全局变量,这是ruby不推荐的,这样会使程序变得很难理解。

      举例:

      #!/usr/bin/ruby

      $global_variable = 10

      class Class1

        def print_global

          puts "Global variable in Class1 is #$global_variable"

        end

      end

      class Class2

        def print_global

           puts "Global varible in Class2 is #$global_variable"

        end

      end

      class1obj = Class1.new

      class1obj.print_global

      class2obj = Class2.new

      class2obj.print_global

      #statement of the ruby code will print:

      =begin

      Global varible in Class1 is 10

      Global varible in Class2 is 10 

      =end

    2.实例变量以@开头,未初始化的实例变量的值为nil并且会出现警告。

      class Customer

        def initialize(id ,name, addr)

          @cust_id = id

          @cust_name = name

          @cust_addr = addr

        end

        def display_detail()

          puts "Customer id is #@cust_id"

          puts "Customer name is #@cust_name"

          puts "Customer addr is #@cust_addr"

        end

      end

      其中的@cust_id,@cust_name,@cust_addr都是实例变量。

    3.类变量,类变量是以@@开头,必须在方法使用它之前,给它初始化。

      引用一个没有被初始化的类变量,就会产生错误。类变量会被其子类和module所共享。

    4.局部变量,以小写字母开头或者_.开头。当一个没有初始化的局部变量被引用,它被解释成

      调用了一个没有参数的方法。

    5.常量,常量以首字母大写,一般习惯全大写。常量定义在class或者module中,在类的范围内

      都可以被访问。定义在class或者module之外,就可以全局访问了。常量不能定义在方法内。

      引用未初始化的常量会出现错误,如果修改一个已经初始化的常量会出现警告。

      #!/usr/bin/ruby

      class Example

        VAR1 = 100

        VAR2 = 200

        def show

          puts "Value of first Costant is #{VAR1}"

          puts "Value of second Constant is #{VAR2}"

        end

      end

      #Create Objects

      object = Example.new()

      object.show

      #will outputs

      Value of first Constant is 100

      Value of second Constant is 200

      

  • 相关阅读:
    go语言基础学习
    VBA汇总同目录下的所有工作簿数据到另一个工作簿,并进行统计
    彻底关闭win10后台同步数据(转自技术社区)
    在WIN10上安装ESXI-Comstomer (转自技术社区)
    squid代理允许FTP访问设置
    Powershell 脚本判断制定路径下文件是否存在(来源于网络-转载)
    Python集合(set)类型的操作 (转)
    python3.5.2中文字符乱码问题解决
    Debian 中文环境设置
    Python 列表推导实例
  • 原文地址:https://www.cnblogs.com/LvLoveYuForever/p/6475630.html
Copyright © 2011-2022 走看看