Ruby 数据类型

Ruby 数据类型

数值类型(Number)

整型(Integer)
浮点型

字符串类型

Ruby 字符串8 位字节序列String 类的对象
双引号标记的字符串单引号标记的字符串注意
不限只允许使用 \ 和 ’ 两个反斜线符号
%Q{Ruby 的字符串}%q |Ruby 的字符串|注:分界符可以是任意一个非字母数字的单字节字符.如:[,{,(,<,!等
#{ expr } 把任意 Ruby 表达式的值替换为一个字符串
字符串中嵌入变量
eg :“你好 #{name1}”
“x 的值为 #{ 1 + 2 }”
字符串内建方法
eg :puts “#{foo}”
myStr = String.new(“THIS IS TEST”)
foo = myStr.downcase

数组

Ruby 数组可存储诸如 String、 Integer、 Fixnum、 Hash、 Symbol 等对象,甚至可以是其他 Array 对象。
Ruby 数组不需要指定大小,当向数组添加元素时,Ruby 数组会自动增长

创建数组
names = Array.new
names = Array.new(20)puts names.size
puts names.length
20
20
names = Array.new(4, “mac”)puts “#{names}”[“mac”, “mac”, “mac”, “mac”]
nums = Array.new(10) { |e| e = e * 2 }puts “#{nums}”[0, 2, 4, 6, 8, 10, 12, 14, 16, 18]
nums = Array.[](1, 2, 3, 4,5)
nums = Array[1, 2, 3, 4,5]
digits = Array(0…9)puts “#{digits}”[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

哈希类型

哈希类似于一个数组,只不过它的索引不局限于使用数字
Hash 的索引(或者叫"键")几乎可以是任何对象
Hash 的元素没有特定的顺序。如果顺序很重要的话就要使用数组了
创建哈希
months = Hash.new不带默认值的哈希是 nil
months = Hash.new( “month” )默认值puts “#{months[0]}”month
months = Hash.new “month”默认值
H = Hash[“a” => 100, “b” => 200]puts “#{H[‘a’]}”100
[1,“jan”] => “January”可以使用任何的 Ruby 对象作为键或值,
甚至可以使用数组
months = {“1” => “January”, “2” => “February”}keys = months.keys
puts “#{keys}”[“1”, “2”]

范围类型

作为序列的范围

作为序列的范围
(1…5)1, 2, 3, 4, 5
(1…5)1, 2, 3, 4
(‘a’…‘d’)‘a’, ‘b’, ‘c’, ‘d’
range1 = (1…10).to_aputs “#{range1}”[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
range2 = (‘bar’…‘bat’).to_aputs “#{range2}”[“bar”, “bas”, “bat”]
(1..5)        #==> 1, 2, 3, 4, 5
(1...5)       #==> 1, 2, 3, 4
('a'..'d')    #==> 'a', 'b', 'c', 'd'
range1 = (1..10).to_a
range2 = ('bar'..'bat').to_a

puts "#{range1}"
puts "#{range2}"

[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
["bar", "bas", "bat"]
digits = 0…9
puts digits.include?(5)true
ret = digits.min0
ret = digits.max9
ret = digits.reject { |i| i < 5 }[5, 6, 7, 8, 9]
digits.each do |digit|
puts “在循环中 #{digit}”
end
在循环中 0
在循环中 1
在循环中 2
在循环中 3
在循环中 4
在循环中 5
在循环中 6
在循环中 7
在循环中 8
在循环中 9
# 指定范围
digits = 0..9
 
puts digits.include?(5)
ret = digits.min
puts "最小值为 #{ret}"
 
ret = digits.max
puts "最大值为 #{ret}"
 
ret = digits.reject {|i| i < 5 }
puts "不符合条件的有 #{ret}"
 
digits.each do |digit|
   puts "在循环中 #{digit}"
end

true
最小值为 0
最大值为 9
不符合条件的有 [5, 6, 7, 8, 9]
在循环中 0
在循环中 1
在循环中 2
在循环中 3
在循环中 4
在循环中 5
在循环中 6
在循环中 7
在循环中 8
在循环中 9

作为条件的范围

score = 70
 
result = case score
when 0..40
    "糟糕的分数"
when 41..60
    "快要及格"
when 61..70
    "及格分数"
when 71..100
       "良好分数"
else
    "错误的分数"
end
 
puts result

作为间隔的范围

检查指定值是否在指定的范围内

if ((1..10) === 5)
  puts "5 在 (1..10)"
end
 
if (('a'..'j') === 'c')
  puts "c 在 ('a'..'j')"
end
 
if (('a'..'j') === 'z')
  puts "z 在 ('a'..'j')"
end

5(1..10)
c 在 ('a'..'j')
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值