易截截图软件、单文件、免安装、纯绿色、仅160KB

Ruby 101:对象和方法


Ruby 101:对象和方法
Written by Allen Lee
从静态方法说起
      在上一篇文章末尾,我们提到了受保护的静态方法……受保护的静态方法??Ruby的protected不是用来向相同类型的不同实例开放受限方法的访问的吗(忘记protected的用法了?不要紧,回去上一篇文章复习一下吧。),如果把它用于静态方法,那么我该向参数传入什么?
      在回答这些问题之前,我们先来看看最简单的不带任何参数的静态方法,假设我有一个空的Class1类,如果我试图调用它的method1静态方法,那么我将会被告知没有这个方法:

图 1
在Ruby里,所有类最终都会继承自Object类(这个说法其实不够准确,但就目前而言,你大可放心这样理解),如果我试图调用它的method1静态方法,那么显然,我也将会被告知没有这个方法:

图 2
还记得Ruby允许我们重新打开并修改一个类吗,如果忘记了,不要紧,回去第一篇文章复习一下吧。下面,我们将会通过这种方式向Class类添加method1方法:

图 3
接着,我们再试一次Class1类及其基类的method1方法:

图 4
噢,买瓜!这到底是怎么一回事?
      先别急,解释留到后面,现在让我们把注意力集中到我们的目标上——受保护的静态方法,把上面的发现和上一篇文章的访问控制知识结合起来,就得到创建受保护的静态方法的办法了:

图 5
下面,我们来试一下这个方法:

图 6
显然,我们成功了,接下来,我们使用上面的发现创建一个odd_equals方法,根据length_of_name方法的返回值判断两个类型是否相等:

图 7
最后,我们来试一下这个奇怪的判等方法:

图 8
哇,实在是太不可思议了!我在Class类里创建的实例方法,到了Class1类和Object类就变成静态方法了,难不成……?
      我想你已经猜到了,Class1类和Object类是Class类的实例:

图 9
而Class1类和Object类的静态方法则是Class类的实例方法,事实上,Ruby没有静态方法这种说法,这种类似静态方法的东西其实叫做类方法。换句话说,类也是对象……
类也是对象
      类也是对象?如果类也是对象,那么Class类是谁的实例?答案是Class类自己:

图 10
换句话说,它是一个Class对象。还记得Object类吗?嗯,Object是一个类,而�


相关文档:

Ruby下解决oci8安装错误的问题

Prepare
1. Download 'OCI 1.x.x.rb' (it's VERY important - execution MUST be *.rb)
2. Download 'oci8lib.so'
Install
1. Copy 'OCI8.rb' to .../ruby/lib/ruby/site_ruby/1.8/DBD/OCI8
2. Copy 'oci8.rb' to .../ruby/lib/ruby/site_ruby/1.8
3. Copy 'oci8lib.so' to .../ruby/lib/ruby/site_ruby/1.8/i386-msv ......

RUBY实践—Ruby Report之Ruport简单应用

Ruport官方网站:http://www.rubyreports.org/
本例中将介绍Ruby报表的简单开发
开发环境
OS:WindowsXP
Ruby:Ruby1.8.7
Rails:Rails2.3.5
Mysql:Mysql5.0.9
IDE:Rubymine2.0.1
一、安装gem
安装命令
gem install ruport
gem install ruport-util
gem install acts_as_reportable
二、创建数据库
  datab ......

ruby 字符串 理解 "" ''

ruby中单引号和双引号的意义有所不同,双引号包围的字符作变量替换,单引号包围的变量不做替换
也可以使用 %q 和 %Q 来生成字符串对象。%q 相当于单引号,%Q相当于双引号。
举例如下:
irb(main):010:0> "show trsult: #{1*3}"
=> "show trsult: 3"
irb(main):011:0> 'show trsult: #{1*3}'
=> "show trs ......

Ruby Ruport实践—中文PDF报表之PRAWN

FPDF能支持PDF的中文打印,然而却存在不少的不如意之处,据我目前的使用,总结出几点:
1)FPDF提供的Pdf_Chinese字体,将GB这种字体写入了代码中,若我们希望引入其他的中文字体,则不能方便地使用
2)FPDF输出的数字并不美观,不如Ruport::Formatter::PDF自带的字体
3)FPDF提供的方法并不多,对于一般的报表打印,用� ......

ruby gem mysql on cygwin

1.    安装Cygwin
运行Cygwin的安装程序。从文见包的的列表中,在DEV里面,确定要选择
• Ruby
• gcc
• subversion
    你需要使用gcc来建立Cygwin版本的MySQL.
2. 在windows上面安装MYSQL:
    download MySQL 5.0 Windows Installer
3.  & ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号