ruby学习代码案例

class ChineseNumber
Numbers = ['一','二','三','四','五','六','七','八','九','十']
attr :chinese_number



def initialize(value)
if Numbers.include?(value)
@chinese_number =value
else
raise '数字不正确'
end
end

#转换整数
def to_num
(Numbers.index(@chinese_number)+1) if @chinese_number
end 

def to_s
@chinese_number
end

def succ
raise(IndexError,'超出数字范围') if self.to_num>=10
ChineseNumber.new(Numbers[self.to_num])
end

def <=>(other)
self.to_num<=> other.to_num
end
end

def ChineseNumber(val)
ChineseNumber.new(val)
end 

one = ChineseNumber('一')
four=ChineseNumber('四')
# puts "#{one} => #{one.to_num}"
# puts "#{one}的下一个是#{one.succ}"


range = one..four
puts ChineseNumber("三").class
puts range.include?(ChineseNumber("三"))
puts range.to_a.include?("三")
range.to_a.each{|i| puts i if i.include?(ChineseNumber("三"))}
# puts range

str =<<HERE
This is a test document.
It contains a lot of date string like 2008-01-02.
It's created at 2008-03-21
HERE



r=/(\d{4})-(\d{2})-(\d{2})/

matches = str.scan(r)

print matches

str.scan(r) do |year, month, day|
puts "#{year}年#{month}月#{day}日"
end 

#[["2008", "01", "02"], ["2008", "03", "21"]]2008年01月02日
# 2008年03月21日

t=Time.local(2008,4,1,8,10,01)
puts t.strftime("%Y-%m%d %H:%M:%S")

#2008-0401 08:10:01

猜你喜欢

转载自blog.csdn.net/qq_42672332/article/details/85765975