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

  

3.ruby语法基础,全部变量,实例变量,类变量,局部变量的使用和注意的要点的更多相关文章

  1. Ruby语法基础(一)

    Ruby语法基础(一) Ruby是一种开源的面向对象程序设计的服务器端脚本语言,最初由松本行弘(Matz)设计开发,追求『快乐和生产力』,程序员友好型,被称为『human-oriented langu ...

  2. Ruby语法基础(二)

    Ruby语法基础(二) 继续ruby的学习,这次主要把目光放到运算符,条件判断,循环,方法,以及其他ruby特有的基本概念上 运算符 算术运算符:+,-,/,%,**,值的注意的是,ruby中一切皆为 ...

  3. Ruby语法基础(三)

    Ruby语法基础(三) ​ 在前面快速入之后,这次加深对基本概念的理解. 字符串 ​ Ruby字符串可以分为单引号字符串和双引号字符串,单引号字符串效率更高,但双引号的支持转义和运行 puts '单引 ...

  4. 张超超OC基础回顾04_实例变量修饰(@public),点语法,self关键字,多态,继承

    零.实例变量修饰符 /* @public 就是实例变量修饰符 @public >可以在其它类中访问被public修饰的成员变量 >也可以在本类中访问被public修饰的成员变量 >可 ...

  5. 了解JavaScript的语法基础,值和变量

    通过JavaScript语法基础学习了解到1.怎么使用js/*通常js的引入和css一样,分为内部,外部和行内引入,执行自上而下,有着先后顺序*/:2.js的语法/*2.1js是用字母,数字.特殊字符 ...

  6. Java父类与子类中静态代码块 实例代码块 静态变量 实例变量 构造函数执行顺序

    实例化子类时,父类与子类中的静态代码块.实例代码块.静态变量.实例变量.构造函数的执行顺序是怎样的? 代码执行的优先级为: firest:静态部分 second:实例化过程 详细顺序为: 1.父类静态 ...

  7. iOS中的成员变量,实例变量,属性变量

    在ios第一版中: 我们为输出口同时声明了属性和底层实例变量,那时,属性是oc语言的一个新的机制,并且要求你必须声明与之对应的实例变量,例如: 注意:(这个是以前的用法) @interface MyV ...

  8. Java变量类型,实例变量 与局部变量 静态变量

    实例变量: 实例变量在类中声明,但在方法的外面,构造函数或任何块. 当空间分配给某个对象在堆中,插槽为每个实例变量创建值. 当一个对象与使用关键字 “new” 来创建,在对象被销毁销毁创建的实例变量. ...

  9. JAVA类与对象(六)------实例变量与类变量的区别,实例方法和类方法的区别

    实例变量 实例变量声明在一个类中,但在方法.构造方法和语句块之外: 当一个对象被实例化之后,每个实例变量的值就跟着确定: 实例变量在对象创建的时候创建,在对象被销毁的时候销毁: 实例变量的值应该至少被 ...

随机推荐

  1. C#实现MD5WITHRSA签名

    这是很久以前的写的一篇博客了,今天把他重新找出来整理一下发布到博客园 当时对接银联的时候搞了很久都没搞出来,后来一个偶然的机会发现类似的一个代码参考了一下终于弄好了 这段代码主要是实现了C#服务端对接 ...

  2. 海康威视采集卡结合opencv使用(两种方法)-转

    (注:第一种方法是我的原创 ^_^. 第二种方法是从网上学习的.) 第一种方法:利用 板卡的API:  GetJpegImage 得到 Jpeg 格式的图像数据,然后用opencv里的一个函数进行解码 ...

  3. 【NumPy学习指南】day5 改变数组的维度

    我们已经学习了怎样使用reshape函数,现在来学习一下怎样将数组展平. (1) ravel 我们可以用ravel函数完成展平的操作: In: b Out: array([[[ 0, 1, 2, 3] ...

  4. Flask信号流程

    首先先我们来看看Flask里面的信号是什么样的,我们可以找到一个叫signals.py的文件 这里面是所有定义了的后面请求流程中会用到的信号 二.哪些地方用到了信号 1.请求app上下文时执行的,在执 ...

  5. make 与makefile(会不会写 makefile,从一个侧面说明了一个人是否具备完成大型工程的能力。)

    跟我一起写 Makefile /**/ 陈皓 (CSDN) 概述 —— 什么是makefile?或许很多Winodws的程序员都不知道这个东西,因为那些Windows的IDE都为你做了这个工作,但我觉 ...

  6. Xcode5 如何添加一个Github/Repository 并且Checkout

    1. 添加一个Account  也就是添加一个 Repository. In Xcode, choose Xcode > Preferences, and click Accounts. Pre ...

  7. 77 最长公共子序列 (lintcode)

    注意:因为开的空间是length+1的,对于字符串的下标计算要-1 class Solution { public: /* * @param A: A string * @param B: A str ...

  8. github更换仓库

    1.找到.git目录   2.打开config文件 3.修改仓库地址 4.重新提交 git push --all origin 这样就替我们的项目换仓啦!!!^_^   分类: git 参考资料: h ...

  9. vue 点击倒计时 ajax 封装

    方法:function(){ var that = this; if (that.time == 0) { that.disabled = false; that.text ="点击获取&q ...

  10. MySQL Group Replication(组复制MGR)

    MGR基本要求: 1.InnoDB存储引擎 2.主键,每个表必须具有已定义的主键或等效的主键,其中等效项是非null唯一键 3.IPv4网络 4.网络性能 5.开启二进制日志并开启GTID模式 6.m ...