《20分钟体验 Ruby》通过这个例子你能感受ruby
1
#!/usr/bin/env ruby
2
3
class MegaGreeter
4
attr_accessor :names //设置属性,自动产生两个方法(name,name=)用来访问@name的值
//想知道一个类提供了那些方法?类名.instance_methods会告诉你,如果只想知道自己定义的方法加个false参数
5
6
# Create the object
7
def initialize(names = "World") //构造函数
8
@names = names //定义了局部变量@names
9
end
10
11
# Say hi to everybody
12
def say_hi
13
if @names.nil? //判断@names是否为nil
14
puts "
" //输出
15
elsif @names.respond_to?("each") //判断@names是否有each方法
16
17
# @names is a list of some kind, iterate!
18
@names.each do |name| //循环
19
puts "Hello #{name}!"
20
end
21
else
22
puts "Hello #{@names}!"
23
end
24
end
25
26
# Say bye to everybody
27
def say_bye
28
if @names.nil?
29
puts "
"
30
elsif @names.respond_to?("join")
31
# Join the list elements with commas
32
puts "Goodbye #{@names.join(", ")}. Come back soon!"
33
else
34
puts "Goodbye #{@names}. Come back soon!"
35
end
36
end
37
38
end
39
40
41
if __FILE__ == $0 //__FILE__ 现在运行的脚本文件的名字,
//这允许代码作为库调用的时候不运行启动代码, 而在作为执行脚本的时候调用启动代码。
42
mg = MegaGreeter.new
43
mg.say_hi
44
mg.say_bye
45
46
# Change name to be "Zeke"
47
mg.names = "Zeke"
48
mg.say_hi
49
mg.say_bye
50
51
# Change the name to an array of names
52
mg.names = ["Albert", "Brenda", "Charles",
53
"Dave", "Englebert"]
54
mg.say_hi
55
mg.say_bye
56
57
# Change to nil
58
mg.names = nil
59
mg.say_hi
60
mg.say_bye
61
end
#!/usr/bin/env ruby2

3
class MegaGreeter4
attr_accessor :names //设置属性,自动产生两个方法(name,name=)用来访问@name的值//想知道一个类提供了那些方法?类名.instance_methods会告诉你,如果只想知道自己定义的方法加个false参数
5

6
# Create the object7
def initialize(names = "World") //构造函数8
@names = names //定义了局部变量@names9
end10

11
# Say hi to everybody12
def say_hi13
if @names.nil? //判断@names是否为nil14
puts "
" //输出15
elsif @names.respond_to?("each") //判断@names是否有each方法16

17
# @names is a list of some kind, iterate!18
@names.each do |name| //循环19
puts "Hello #{name}!"20
end21
else22
puts "Hello #{@names}!"23
end24
end25

26
# Say bye to everybody27
def say_bye28
if @names.nil?29
puts "
"30
elsif @names.respond_to?("join")31
# Join the list elements with commas32
puts "Goodbye #{@names.join(", ")}. Come back soon!"33
else34
puts "Goodbye #{@names}. Come back soon!"35
end36
end37

38
end39

40

41
if __FILE__ == $0 //__FILE__ 现在运行的脚本文件的名字,$0 是启动脚本的名字.//这允许代码作为库调用的时候不运行启动代码, 而在作为执行脚本的时候调用启动代码。
42
mg = MegaGreeter.new43
mg.say_hi44
mg.say_bye45

46
# Change name to be "Zeke"47
mg.names = "Zeke"48
mg.say_hi49
mg.say_bye50

51
# Change the name to an array of names52
mg.names = ["Albert", "Brenda", "Charles",53
"Dave", "Englebert"]54
mg.say_hi55
mg.say_bye56

57
# Change to nil58
mg.names = nil59
mg.say_hi60
mg.say_bye61
end
浙公网安备 33010602011771号