变量持有要使用的程序的数据的存储位置。
Ruby支持的有五种类型的变量。在前面的章节中已经经历了一个简短描述以及这些变量。本章中介绍的这五种类型的变量。
Ruby的全局变量:
全局变量以$开头。未初始化的全局变量的值是零,并使用-w选项产生警告。
全局变量的赋值会改变全局状态。这是不推荐使用全局变量。他们使得程序的含义模糊。
下面是一个例子显示使用全局变量。
#!/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 variable in Class2 is #$global_variable" end end class1obj = Class1.new class1obj.print_global class2obj = Class2.new class2obj.print_global
这里$global_variable是一个全局变量。这将产生以下结果:
注意: 在Ruby中,把一个哈希号(#)字符,在任意变量或常量之前能够访问它的值。
Global variable in Class1 is 10
Global variable in Class2 is 10
Ruby的实例变量:
实例变量@开始。未初始化的实例变量的值是零,并产生警告-w选项。
下面是一个例子显示使用实例变量。
#!/usr/bin/ruby class Customer def initialize(id, name, addr) @cust_id=id @cust_name=name @cust_addr=addr end def display_details() puts "Customer id #@cust_id" puts "Customer name #@cust_name" puts "Customer address #@cust_addr" end end # Create Objects cust1=Customer.new("1", "John", "Wisdom Apartments, Ludhiya") cust2=Customer.new("2", "Poul", "New Empire road, Khandala") # Call Methods cust1.display_details() cust2.display_details()
这里的@cust_id, @cust_name 和 @cust_addr 都是实例变量。这将产生以下结果:
Customer id 1 Customer name John Customer address Wisdom Apartments, Ludhiya Customer id 2 Customer name Poul Customer address New Empire road, Khandala
Ruby的类变量:
类变量以@@开始,它们可以被用来在方法定义之前必须初始化。
引用未初始化的类变量产生错误。类变量之间共享其中的类变量定义的类或模块的的后代。
覆盖类变量产生警告-w选项。
下面是一个例子显示使用类变量:
#!/usr/bin/ruby class Customer @@no_of_customers=0 def initialize(id, name, addr) @cust_id=id @cust_name=name @cust_addr=addr end def display_details() puts "Customer id #@cust_id" puts "Customer name #@cust_name" puts "Customer address #@cust_addr" end def total_no_of_customers() @@no_of_customers += 1 puts "Total number of customers: #@@no_of_customers" end end # Create Objects cust1=Customer.new("1", "John", "Wisdom Apartments, Ludhiya") cust2=Customer.new("2", "Poul", "New Empire road, Khandala") # Call Methods cust1.total_no_of_customers() cust2.total_no_of_customers()
@@no_of_customers 是一类变量。这将产生以下结果:
Total number of customers: 1 Total number of customers: 2
Ruby的局部变量:
局部变量以小写字母或_开头。一个局部变量的范围的范围类,模块,def或做相应的结束或块的左花括号的紧密括号{}。
当一个未初始化的局部变量被引用,它被解释为没有参数的方法调用。
分配未初始化的局部变量也作为变量声明。变量开始存在,直到结束的当前范围内到达。局部变量的生命周期由Ruby进行解析程序时才能确定。
另外,在上述的例子中,局部变量 id, name 和他addr.
Ruby的常量:
常量以大写字母开头。在类或模块定义的常量可以在该类或模块访问,所定义外一个类或模块可以全局访问。
常量不能定义在方法内。引用未初始化的常数会产生一个错误。分配已初始化一个常数会产生一个警告。
#!/usr/bin/ruby class Example VAR1 = 100 VAR2 = 200 def show puts "Value of first Constant is #{VAR1}" puts "Value of second Constant is #{VAR2}" end end # Create Objects object=Example.new() object.show
这里VAR1和VAR2是常量。这将产生以下结果:
Value of first Constant is 100 Value of second Constant is 200
Ruby的拟变量:
他们是特殊的变量,局部变量,但外观像常数。但不能给这些变量分配到任何值。
- self: 当前方法的接收方对象。
- true: 表示真的值。
- false: 表示假的值。
- nil: 表示未定义(undefined)的值.
- __FILE__: 在当前源文件的名称.
- __LINE__: 在源文件中的当前行号。
Ruby的基本常值:
Ruby使用字面值的规则是简单和直观。本节介绍了所有基本的Ruby的常值。
整型数:
Ruby支持整数。一个整数的范围可以从 -230 到 230-1 或 -262 to 262-1 在此范围内的整数是Fixnum类的对象,在此范围之外的整数存储在Bignum的类的对象。
编写整数使用可选的前导符号,一个可选的基数表示(0八进制,0x表示十六进制或二进制0b),其次是一串数字在相应基数。下划线字符被忽略的数字串。
例如:
123 # Fixnum decimal 1_234 # Fixnum decimal with underline -500 # Negative Fixnum 0377 # octal 0xff # hexadecimal 0b1011 # binary "htmlcode">123.4 # floating point value 1.0e6 # scientific notation 4E20 # dot not required 4e+20 # sign before exponential字串常值:
Ruby字符串是简单的8位字节序列,它们是String类的对象。双引号字符串可以替代和反斜线符号,但不允许单引号替换和只允许反斜线符号 \\ 和 \'
例如:
#!/usr/bin/ruby -w puts 'escape using "\\"'; puts 'That\'s right';这将产生以下结果:
escape using "\" That's right也可以替换成一个字符串使用#{expr}序列表示任何Ruby表达式的值。表达式expr 可以是任何Ruby的表达式。
#!/usr/bin/ruby -w puts "Multiplication Value : #{24*60*60}";这将产生以下结果:
Multiplication Value : 86400反斜线符号说明:
以下是Ruby支持的反斜线符号列表:
Ruby字符串的更多详细信息,请通过 Ruby字符串.
Ruby数组:Ruby的数组是由放置对象引用方括号之间用逗号分隔的一系列字面。逗号结尾被忽略。
例如:#!/usr/bin/ruby ary = [ "fred", 10, 3.14, "This is a string", "last element", ] ary.each do |i| puts i end这将产生以下结果:
fred 10 3.14 This is a string last elementRuby的数组的更多细节,经过 Ruby数组.
Ruby 哈希:字面上Ruby创建哈希放置括号之间的键/值对列表,以逗号或序列=>之间的键和值。逗号结尾被忽略。
例如:#!/usr/bin/ruby hsh = colors = { "red" => 0xf00, "green" => 0x0f0, "blue" => 0x00f } hsh.each do |key, value| print key, " is ", value, "\n" end这将产生以下结果:
green is 240 red is 3840 blue is 15对于更详细的Ruby哈希,经过 Ruby哈希.
Ruby的范围:范围代表的间隔。一组的开始和结束的值。可能被使用s..e 和s...e文字,或具有Range.new范围。
范围使用..包含运行从开始到结束。创建使用...排除最终值。当作为一个迭代器,范围序列中的每个值将返回。
range (1..5) 表示,它包括1,2,3,4,5值,range (1...5) 表示,它包括1,2,3,4这四个值。
实例:#!/usr/bin/ruby (10..15).each do |n| print n, ' ' end这将产生以下结果:
10 11 12 13 14 15
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
《魔兽世界》大逃杀!60人新游玩模式《强袭风暴》3月21日上线
暴雪近日发布了《魔兽世界》10.2.6 更新内容,新游玩模式《强袭风暴》即将于3月21 日在亚服上线,届时玩家将前往阿拉希高地展开一场 60 人大逃杀对战。
艾泽拉斯的冒险者已经征服了艾泽拉斯的大地及遥远的彼岸。他们在对抗世界上最致命的敌人时展现出过人的手腕,并且成功阻止终结宇宙等级的威胁。当他们在为即将于《魔兽世界》资料片《地心之战》中来袭的萨拉塔斯势力做战斗准备时,他们还需要在熟悉的阿拉希高地面对一个全新的敌人──那就是彼此。在《巨龙崛起》10.2.6 更新的《强袭风暴》中,玩家将会进入一个全新的海盗主题大逃杀式限时活动,其中包含极高的风险和史诗级的奖励。
《强袭风暴》不是普通的战场,作为一个独立于主游戏之外的活动,玩家可以用大逃杀的风格来体验《魔兽世界》,不分职业、不分装备(除了你在赛局中捡到的),光是技巧和战略的强弱之分就能决定出谁才是能坚持到最后的赢家。本次活动将会开放单人和双人模式,玩家在加入海盗主题的预赛大厅区域前,可以从强袭风暴角色画面新增好友。游玩游戏将可以累计名望轨迹,《巨龙崛起》和《魔兽世界:巫妖王之怒 经典版》的玩家都可以获得奖励。
更新日志
- 凤飞飞《我们的主题曲》飞跃制作[正版原抓WAV+CUE]
- 刘嘉亮《亮情歌2》[WAV+CUE][1G]
- 红馆40·谭咏麟《歌者恋歌浓情30年演唱会》3CD[低速原抓WAV+CUE][1.8G]
- 刘纬武《睡眠宝宝竖琴童谣 吉卜力工作室 白噪音安抚》[320K/MP3][193.25MB]
- 【轻音乐】曼托凡尼乐团《精选辑》2CD.1998[FLAC+CUE整轨]
- 邝美云《心中有爱》1989年香港DMIJP版1MTO东芝首版[WAV+CUE]
- 群星《情叹-发烧女声DSD》天籁女声发烧碟[WAV+CUE]
- 刘纬武《睡眠宝宝竖琴童谣 吉卜力工作室 白噪音安抚》[FLAC/分轨][748.03MB]
- 理想混蛋《Origin Sessions》[320K/MP3][37.47MB]
- 公馆青少年《我其实一点都不酷》[320K/MP3][78.78MB]
- 群星《情叹-发烧男声DSD》最值得珍藏的完美男声[WAV+CUE]
- 群星《国韵飘香·贵妃醉酒HQCD黑胶王》2CD[WAV]
- 卫兰《DAUGHTER》【低速原抓WAV+CUE】
- 公馆青少年《我其实一点都不酷》[FLAC/分轨][398.22MB]
- ZWEI《迟暮的花 (Explicit)》[320K/MP3][57.16MB]