清华大佬耗费三个月吐血整理的几百G的资源,免费分享!....>>>
#coding:utf-8 #熟悉ruby基本数据类型 class Ruby01 puts "基本数字类型" puts 1 puts 1.0 puts 1.class #输出Fixnum puts 1.0.class #输出Float puts 1.0.class.class #输出Class puts puts "算数基本操作" puts 4/2 puts 4/2.0 puts 4.0/2.0 puts 4*2 puts 4**2 puts 4%2 puts 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()] puts s[s.length()].class #输出NilClass puts puts s[0,3] puts s[-3,5] 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}-"} #数组 =begin ruby中数组用逗号分割元素 数组下标从0开始 []数组长度为0 each方法可以遍历一个数组 =end 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 "arr数组第二个元素为数组";arr[1].each{|x|print"#{x}-"}; puts puts "数组创建" puts "empty=Array.new():#{Array.new()}" puts "nils=Array.new(3):#{Array.new(3)}" puts "0=Array.new(4,0):#{Array.new(4,0)}" puts "copy=Array.new(nils):#{Array.new(arr)}" #数组拷贝 puts "count =Array.new(3):#{Array.new(3){|x| x+1}}" #元素索引填充数组 puts puts "数组运算" =begin ruby中是可变数组 >>可以给数组添加数据 >>可以添加多条数据 |取合集 &取交集 =end arr0=[] arr0<<1 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}" #对象 =begin equal比较对象 eql比较对象值 ==比较值 |取合集 &取交集 object_id用来比较是否是同一个对象 =end puts puts "对象比较" obj1="ruby" obj2=obj3="ruby" puts obj1.equal?(obj2) puts obj2.equal?(obj3) puts obj1.eql?(obj2) puts obj2.eql?(obj3) puts "obj1的obj1.object_id=#{obj1.object_id},obj2的obj2.object_id=#{obj2.object_id},obj3的obj3.object_id=#{obj3.object_id}" puts 1==1.0 #==比较,可以进行值转换 puts 1.eql?(1.0) #eql比较,不能进行值转换 puts "0==nil:#{0==nil}"#判断是否为nil 另一种方法0.nil? =begin to_i,to_f,to_s用来转换成Integer,Float,string类型 =end puts puts "类型转换" s1=1 puts "s1是:#{s1.class}" s2="1" puts "s2是:#{s2.class}" s3=1.0 puts "s3是:#{s3.class}" s4=s1.to_s() puts "s4是:#{s4.class}" s5=s2.to_i() puts "s5是:#{s5.class}" puts "s2==s4:#{s2==s4}" puts "s1==s5:#{s1==s5}" end #new()创建对象 e =Example01.new(); print e