您的位置:首页 > 其它

基本数据类型和对象

2012-02-14 17:56 253 查看
# coding: utf-8
#Example01:学习数据类型和对象
#@author yongtree
class Example01
#基本的数字类型,和java差不多,但是不同的是都是对象
puts "基本数字类型"
puts 1
puts 1.0
puts 1.class
puts 1.0.class

#基本算数操作
puts
puts "基本算数操作"
puts 4/2
puts 4/2.0
puts 4%2
puts 4+2
puts 4*2
puts 4**2

#文本
puts
puts '第一个ruby程序'\
'单引号的使用:'\
'使用单引号可以跨越多行'
puts "双引号的使用"
puts "4/2=#{4/2}" #双引号中可以包含变量或者表达式,但是单引号下不行,会当成字符串输出
puts "圆周率是%.4f" % Math::PI    #类似于
#printf ("圆周率是%.4f" % Math::PI)

puts
puts "访问字符串和子字符串"
s="hello"
puts s[0]
puts s[s.length-1]
puts s[-1]
puts s[-2]
puts s[-s.length]
puts s[s.length].class #返回nil

puts
puts s[0,3]
puts s[-3,5]  #-3-->0
puts s[0,-2].class   #长度不是是负值
puts s[2..4]

puts
s[s.length,0]="world"
puts s
s[5,0]=","
puts s
s[5,5]=""
puts s

puts
s="字符串迭代"
puts s
s.each_char{|x| print "#{x}-"}

#数组
puts
puts
puts "数组"
arr = [1,2,3];arr.each { |x| print "#{x},"}
puts
arr = [-10...0,0..10,]
puts "arr第一个元素为数组,打印:";arr[0].each { |x| print "#{x},"};
puts
puts "arr第二个元素为数组,打印:";arr[1].each { |x| print "#{x},"};
puts
puts
puts "数组创建"
puts "empty=Array.new:#{Array.new}"
puts "nils=Array.new:#{Array.new(3)}"
puts "zeros=Array.new:#{Array.new(4,0)}"
puts "copy=Array.new:#{Array.new(arr)}"
puts "count=Array.new:#{Array.new(3){|x| x+1}}"

puts
puts "数组运算"
arr0=[]
arr0<<1
puts "#{arr0}"
arr0<<2<<3
puts "#{arr0}"
arr0<<[4,5,6]
puts "#{arr0}"
arr1=[1,3,2,5,4]
arr2=[2,3]
puts "取并集:(arr1 | arr2)-->#{arr1|arr2}"
puts "取并集:(arr2 | arr1)-->#{arr2|arr1}"
puts "取交集:(arr1 & arr2)-->#{arr1&arr2}"
puts "取交集:(arr2 & arr1)-->#{arr2&arr1}"

#对象
puts
puts "对象比较"
obj1="Ruby"
obj2=obj3="Ruby"
puts obj1.equal?(obj2) #比较对象  false
puts obj2.equal?(obj3)             #true
puts obj1.eql?(obj2)  #比较值    true
puts obj1==obj2       #比较值   true
puts "obj1的object_id=#{obj1.object_id},obj2的object_id=#{obj2.object_id},obj3的object_id=#{obj3.object_id}"        #可以通过比较对象的object_id来判断是不是一个对象

puts 1==1.0      #==比较,值可以转换  true
puts 1.eql?(1.0) #不能进行值转换      false

end
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: