常用基础备忘

清华大佬耗费三个月吐血整理的几百G的资源,免费分享!....>>>

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
#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