ruby变量详解(收集+整理)
来源:互联网 发布:淘宝运费险骗保 编辑:程序博客网 时间:2024/06/05 01:12
ruby的变量有局部变量,全局变量,实例变量,类变量,常量。
1、局部变量
2、全局变量
3、实例变量
irb(main):016:0> class Myclass
irb(main):017:0>def initialize(name,gender,age)
irb(main):018:0>@name=name irb(main):019:0>
@gender=gender
irb(main):020:2>@age=age
irb(main):021:0>end
irb(main):022:0> end
=> nil---------------@name, @gender,@age都是实例变量。可以在类或子类的方法中引用实例变量。若引用尚未被初始化的实例变量的话,其值为nil。
irb(main):023:0> x=Myclass.new("john")
=> #<Myclass:0x7f2e15a7dad8 @name="john">Myclass类,他的构造器接收一个name参数,然后把该参数赋值给实例变量@name。
x是Myclass的实例,她拥有实例变量@name。
只有在类被实例化时,实例变量才产生和存在。但是,实例对象并不能直接访问实例变量:
irb(main):022:0> x.@name
SyntaxError: compile error
(irb):22: syntax error, unexpected tIVAR
from (irb):22
from :0
irb(main):023:0> class Myclass
irb(main):024:1>def name
irb(main):025:2>@name
irb(main):026:2>end
irb(main):027:1> end
=> nil
irb(main):028:0> x.name
=> "john"
irb(main):029:0> class Myclass
irb(main):030:1>def name=(value)
irb(main):031:2>@name=value
irb(main):032:2>end
irb(main):033:1> end
=> nil
irb(main):034:0> x.name="jean"
=> "jean"
irb(main):035:0> x.name
=> "jean"
irb(main):036:0> class Myclass
irb(main):037:1>attr_accessor :age
irb(main):038:1> end
=> nil
irb(main):039:0> x.age=20
=> 20
irb(main):040:0> x.age
=> 20
irb(main):041:0> x
=> #<Myclass:0x7f2e15a7dad8 @name="jean", @age=20>对应的还有attr_reader只设置get方法,attr_writer只设置set方法。
4、类变量
类变量在类的定义中定义,可以在类的特殊方法、实例方法等处对类变量进行赋值和引用。类变量被类,类的子类和他们的实例对象共享。
class Person
def initialize(name, gender, age)
@age = age
@@number += 1
end
end
5、常量
irb(main):049:0> Pi=3.15
(irb):49: warning: already initialized constant Pi
=> 3.15
irb(main):050:0> Pi
=> 3.15
通常在类里设置常量:
irb(main):051:0> class Myclass
irb(main):052:1>Pi=3.1415
irb(main):053:1> end
=> 3.1415
- ruby变量详解(收集+整理)
- ruby变量详解
- Javascript的Event对象详解[收集整理]
- Javascript的Event对象详解[收集整理]
- using namespace std详解(收集整理)
- Ruby变量
- Ruby变量
- Ruby 变量
- ruby变量
- Ruby变量
- 收集整理
- 新人学ruby---ruby 变量
- 网友收集整理:Vista文件压缩功能详解
- CentOS 6.8 安装vsftpd服务详解[来源:网络收集整理]
- (整理)Ruby的基础知识
- (整理)Ruby的基础知识
- ruby基础整理
- ruby常用gem整理
- asp.net几种控件类型的区别
- 异常:java.sql.SQLException: The total number of locks exceeds the lock table size
- Android学习系列(30)--App列表之下拉刷新
- iOS图形处理和性能
- UIWebview加载jS做搜索
- ruby变量详解(收集+整理)
- 进入Erlang世界
- Java调用R(二)_JRI
- TL-WR740N_V4板TTL刷机指南_TFTP
- 内部类特点总结
- oracle11g口令问题
- photoshop小技巧
- Html:网页添加背景音乐
- .NET中 web.config 配置数据库地址