前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >《20分钟体验 Ruby》通过这个例子你能感受ruby

《20分钟体验 Ruby》通过这个例子你能感受ruby

作者头像
用户3135539
发布2018-09-12 11:42:59
6150
发布2018-09-12 11:42:59
举报
文章被收录于专栏:
代码语言:javascript
复制
1#!/usr/bin/env ruby
 2
 3class 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
38end
39
40
41if __FILE__ == $0  //__FILE__ 现在运行的脚本文件的名字,$0 是启动脚本的名字.
                    //这允许代码作为库调用的时候不运行启动代码,
而在作为执行脚本的时候调用启动代码。
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
61end
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2008-03-14 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档