======类
简单类
ruby> class Mammal
| def initialize
| end
| def breathe
| print "inhale and exhale\n"
| end
| end
nil
继承,用<
ruby> class Cat<Mammal
| def speak
| print "Meow\n"
| end
| end
创建对象
ruby> pochi = Cat.new
#<Cat:0xbcb90>
调用方法
ruby> pochi.speak
Bow Wow
nil
成员变量
全局变量 $
实变量 @
局部变量 小写或者_ 打头
常量 大写字母开头
存取器
Shortcut缩写 Effect等同于
attr_reader :v def v; @v; end
attr_writer :v def v=(value); @v=value; end
attr_accessor :v attr_reader :v; attr_writer :v
attr_accessor :v, :w attr_accessor :v; attr_accessor :w
======方法
参数应在一对括号内
object.method(arg1, arg2)
括号可以省掉.
object.method arg1, arg2
特殊变量self;
self.method_name(args...)
和这一样
method_name(args...)
特殊成员方法inspect方法,类似C#的ToString
ruby> class Fruit
| def inspect
| "a fruit of the " + @kind + " variety"
| end
| end
nil
ruby> f2
"a fruit of the banana variety"
构造方法initialize,用super调用父类
ruby> class Cat<Mammal
| def initialize
| super
| print "Meow\n"
| end
| end
=====Cool 迭代之yield,retry
yield 让流程可以使用Block
ruby> def repeat(num)
| while num > 0
| yield
| num -= 1
| end
| end
nil
ruby> repeat(3) { print "foo\n" }
foo
foo
foo
nil
案例:有while相同作用的迭代器
ruby> def WHILE(cond)
| return if not cond
| yield
| retry
| end
nil
ruby> i=0; WHILE(i<3) { print i; i+=1 }
012 nil
retry语句从头执行迭代.这是一个死循环,到2就重新执行
ruby> for i in 0..4
| print i
| if i == 2 then
| retry
| end
| end;
===== 迭代
字符串迭代
each_byte
> "abc".each_byte{|c| printf "%c", c}
abc
each_line.
ruby> "a\nb\nc".each_line{|l| print l}
a
b
c
=====数组
定义数组:方括号里列出元素,不限定类型
ruby> ary = [1, 2, "3"]
[1, 2, "3"]
数组加
ruby> ary + ["foo", "bar"]
[1, 2, "3", "foo", "bar"]
数组乘
ruby> ary * 2
[1, 2, "3", 1, 2, "3"]
访问
ruby> ary[0]
1
ruby> ary[0..1]
[1, 2]
ruby> ary[-2]
2
数组字符串转换
ruby> str = ary.join(":")
"1:2:3"
ruby> str.split(":")
["1", "2", "3"]
=============哈希表
定义
ruby> h = {1 => 2, "2" => "4"}
{1=>2, "2"=>"4"}
使用
ruby> h[1]
2
ruby> h["2"]
"4"
ruby> h[5]
nil
ruby> h[5] = 10 # appending value
10
ruby> h
{5=>10, 1=>2, "2"=>"4"}
删除
ruby> h.delete 1 # deleting value
2
==============字符串
单引号,双引号都可以做字符串定界符
> "abc"
> 'abc'
字符串可以跨行
"foo
bar"
双引号的字符串允许字符转义(Escape),用#{}内嵌表达式.
>"\n"
>"name="1000copy"
> #{name}"
单引号字符串保持原字符串
ruby> print 'a\nb\n'
a\nb\nc
字符串乘
> "foo" * 2
"foofoo"
抽取字符,返回ASCII
ruby> word[0]
102 # 102 is ASCII code of `f'
ruby> word[-1]
111 # 111 is ASCII code of `o'
提取子串:
ruby> herb = "parsley"
"parsley"
ruby> herb[0,1]
"p"
ruby> herb[-2,2]
"ey"
检查相等:
ruby> "foo" == "foo"
true
正则表达式
// 表达为regexp
/\w/ 字母或数字
/\s/ 非空
optimize my sight——from Refactor to DB Turning
Blog :http://1000copy.iteye.com
MicroBlog : t.sina.com.cn/1000copy
club page :http://www.cdsoftwareclub.com
分享到:
相关推荐
src-oepkgs/ruby-ruby2rubysrc-oepkgs/ruby-ruby2rubysrc-oepkgs/ruby-ruby2rubysrc-oepkgs/ruby-ruby2rubysrc-oepkgs/ruby-ruby2rubysrc-oepkgs/ruby-ruby2rubysrc-oepkgs/ruby-ruby2rubysrc-oepkgs/ruby-ruby2...
《深入理解Ruby调试工具:ruby-debug-ide》 在Ruby编程世界中,高效的问题排查与代码调试是开发者必备的技能之一。ruby-debug-ide正是这样一个强大的调试接口,它为Ruby开发环境提供了集成的调试支持,使得开发者...
mingw32-ruby-1.9.1-wxruby-2.0.1-setup.exe
总的来说,"rubyinstaller-devkit-3.0.2-1-x64.zip"是一个完整的Ruby开发环境,包含Ruby解释器和必要的开发工具,使得Windows用户可以轻松地安装和使用Ruby及其相关的开源库。这个压缩包对于希望在Windows系统上进行...
标题 "ruby-1.8.7-p72-i386-mswin32.zip" 提供的信息表明,这是一个针对i386架构的Windows 32位系统的Ruby编程语言的版本1.8.7,具体补丁级别为p72。Ruby是一种面向对象的、动态类型的脚本语言,由日本人松本行弘于...
标题“ruby-enterprise-1.8.6-20090201”揭示了这个版本的具体信息:它基于Ruby 1.8.6版本,并在2009年2月1日发布。这个版本是为Linux操作系统设计的,正如描述“ruby-enterprise-1.8.6-20090201.tar for linux”所...
标题中的"ruby-2.5.3-x64"指的是Ruby语言的特定版本,2.5.3,这是一个64位的构建。Ruby的版本迭代频繁,每个新版本通常会包含性能优化、新的特性和错误修复。2.5.3是2018年发布的一个稳定版本,它带来了诸如改进的...
ruby安装包-rubyinstaller-devkit-3.0.2-1-x64安装文件 Ruby是一种面向对象、动态类型的脚本语言,由Yukihiro "Matz" Matsumoto于1995年创建。它以其简洁、优雅的语法和强大的编程能力而闻名,广泛应用于Web开发、...
标题中的“XiaoMi-Ruby-15.6-UMA-only-master.zip”表明这是一个与小米(XiaoMi)相关的项目,使用了Ruby编程语言,适用于15.6英寸的设备,且专注于UMA(Unified Memory Architecture)技术。UMA是计算机内存架构的...
ruby-debug-ide-0.4.16.gem
DEV ruby x64 V2.5.1-1 便携版 DEV ruby x64 V2.5.1-1 Portable
"ruby-kaigi-notes-源码.rar" 文件很可能包含了历届 Ruby Kaigi 大会的参会者笔记,这些笔记通常以源码的形式记录了会议中的精华内容,对深入理解 Ruby 语言和相关技术有极大的帮助。 首先,让我们来了解一下 Ruby ...
zsh Shell环境个性化定制设计源码,包含1599个文件,涵盖649个zsh配置文件、372个Markdown文档、144个zsh主题文件、27个Ruby脚本文件、20个PNG图片文件、18个Shell脚本文件、15个YAML配置文件、11个配置文件、10个...
标题中的"ruby-oo-fundamentals-attribute-accessors-lab-sea01-seng-ft-07132"表明这是一个关于Ruby面向对象基础的实验,重点是属性访问器(Attribute Accessors)。在这个实验室中,可能涉及到如何在Ruby类中定义...
DEV ruby x64 V2.5.1-1-nodevkit 便携版 DEV ruby x64 V2.5.1-1-nodevkit Portable
- c:/ruby/lib/ruby/site_ruby: 用户自己的Ruby代码或第三方库目录。 - c:/ruby/src: Ruby源代码目录。 - c:/ruby/samples: 示例程序目录,用于存放各种例子。 编写Ruby程序时,所有的源文件都必须以.rb作为文件...
官方离线安装包,测试可用。使用rpm -ivh [rpm完整包名] 进行安装
《Ruby与CouchDB:深入理解ruby-couch-db源码》 Ruby是一种强大的动态编程语言,以其简洁的语法和灵活性深受开发者喜爱。在Web开发领域,Ruby常常与Rails框架一起被用于构建高效、可维护的应用程序。而CouchDB则是...
ruby_file_jekyll-paginate-plugin
《Ruby调试工具:ruby-debug-1.87详解》 Ruby是一种动态、开源的编程语言,以其简洁的语法和强大的元编程能力深受开发者喜爱。在开发过程中,调试是必不可少的一环,而`ruby-debug-1.87`就是Ruby社区中广泛使用的...