Ruby学习笔记0708
#!/usr/bin/env ruby class MegaGreeter
attr_accessor :names # 初始化這個物件
def initialize(names = "World")
@names = names
end # 向每個人說 hi
def say_hi
if @names.nil?
puts "..."
elsif @names.respond_to?("each")
# @names 是可以迭代的陣列容器
@names.each do |name|
puts "Hello #{name}!"
end
else
puts "Hello #{@names}!"
end
end # 向每個人說 bye
def say_bye
if @names.nil?
puts "..."
elsif @names.respond_to?("join")
# 用逗號將陣列中的元素串接成一個字串
puts "Goodbye #{@names.join(", ")}. Come back soon!"
else
puts "Goodbye #{@names}. Come back soon!"
end
end end if __FILE__ == $0
mg = MegaGreeter.new
mg.say_hi
mg.say_bye # 變更成 "Zeke"
mg.names = "Zeke"
mg.say_hi
mg.say_bye # 變更成一個名字的陣列
mg.names = ["Albert", "Brenda", "Charles",
"Dave", "Engelbert"]
mg.say_hi
mg.say_bye # 變更成 nil
mg.names = nil
mg.say_hi
mg.say_bye
end
这段代码是ruby初学者都会接触的代码,具体参照二十分钟教你学Ruby。
日文链接https://www.ruby-lang.org/zh_tw/documentation/quickstart/4/
中文链接http://tech.it168.com/d/2007-09-04/200709041111532.shtml
Ruby学习笔记0708的更多相关文章
- Ruby学习笔记4: 动态web app的建立
Ruby学习笔记4: 动态web app的建立 We will first build the Categories page. This page contains topics like Art, ...
- ruby学习笔记(1)-puts,p,print的区别
ruby学习笔记-puts,p,print的区别 共同点:都是用来屏幕输出的. 不同点:puts 输出内容后,会自动换行(如果内容参数为空,则仅输出一个换行符号):另外如果内容参数中有转义符,输出时将 ...
- ruby 学习笔记 1
写ruby blog 系统的记录下.也是对我学ruby的点滴记录. 先介绍下我的学习环境.系统:ubuntu12.04文档:techotopia ,ruby文档,the hard way learn ...
- ruby学习笔记(2)-chomp,chop的区别
还没开始系统性的学习Ruby,最近在看metasploit框架的exploit会涉及到Ruby脚本,也就硬着头皮一遍查阅资料一遍做些笔记吧. Ruby字符串中存在chop和chomp的内置函数.我在h ...
- ruby 学习笔记 2 -变量
变量 在ruby的世界里,变量有5种,全局变量 局部变量 实例变量 常量 类变量以及伪变量 常用的: 全局: 在全局使用,使用$开头,因为是全局的,所以在任何的代码例子中都可以改变其值,造成混乱,所以 ...
- Ruby学习笔记
#!/usr/bin/ruby puts "Hello, Ruby, what is your name?" $name = STDIN.gets puts "Hi, I ...
- Ruby学习笔记(二)
1.block 代码块 do...end 或 {} 构成一个代码块,就像常见的 .each后面跟的代码块. my_nums = [1,2,3] my_double_nums = my_nums.col ...
- Ruby学习笔记之升级ruby的版本
升级ruby版本,有时候安装ruby的版本过低,需要进行升级,例如安装在centos6.7安装fpm需要ruby版本在1.9以上. 0x00 主机环境如下 [root@test ~]# cat /et ...
- Ruby学习笔记7: 添加身份验证(adding Authentication)
我们已经完成了Category & Product页面内容的增删改查,再加入一个身份验证即可成为一个较完整的Rails App了.本文就来完成这个任务. We now need to give ...
随机推荐
- $(this)在ajax中无效的解决方案
在ajax方法里写$(this)指向的是最近调用它的jquery对象,所以这里的$(this)指的是ajax对象,而不是$(".enter_caozuo").find(" ...
- LookUpEdit手动编辑怎么设置呢?
近来遇到一问题,用LookUpEdit控件时,无法进行手动删除上面的数据,为此查找资料进行修改: 解决方法如下:LookUpEdit的属性-->Properties->TextEditSt ...
- 第一篇博客:Hello World
2016年10月10日,双十,好日子,决定开始写第一篇博客,标题想了会,就叫Hello World 吧,哈哈^_^. 首先感谢博客园的管理们能批准我的申请,记得在14年的时候申请过一次,竟然没申请通过 ...
- asp.net ajax与jquery的冲突问题解决
在网上看到有网友说,用了updatepannel这个asp.net ajax异步更新面板后,javascript或者jquery代码不起作用,实际上,可以在updatepannel的触发器中进行设置解 ...
- CentOS安装crontab及使用方法(汇总多人博客并实践确认无误)
安装centOS: yum -y install vixie-cron --该软件包是cron的主程序 yum -y install crontabs--该软件包用来安装.卸载或者列举需要cron来守 ...
- scanf_s 可能会出现的死循环
VS2015中提供了scanf_s().在调用时,必须提供一个数字以表明最多读取多少位字符. scanf_s("%s& ...
- Git版本库
创建版本库:git init db 只要用git init db 就可以很容易创建一个空的Git版本库. Git版本库创建好之后,在版本库的目录下有一个.git的子目录中有几项内容,其中注意三项: 1 ...
- python导入cx_Oracle报错的问题!
import cx_Oracle 总是报错:ImportError: DLL load failed: 找不到指定的模块. 或者:ImportError: DLL load failed: %1 不是 ...
- 百度前端技术学院2015JavaScript基础部分实现自己的小型jQuery
// 实现一个简单的Query function $(selector) { ); if (firstChar == "#") { var len = selector.split ...
- 作业七:团队项目——Alpha版本冲刺阶段006
今日进展:完成主体代码. 今日安排:对程序主体进行编写.