找回密码
 FreeOZ用户注册
查看: 3015|回复: 23
打印 上一主题 下一主题

[论坛技术] Ruby -- 学习笔记

[复制链接]
跳转到指定楼层
1#
发表于 2-6-2008 01:28:26 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
提示: 作者被禁止或删除, 无法发言

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?FreeOZ用户注册

x
下载了一个VTC的视频教程,我边看边学,边记笔记。

首先说说工具软件,Ruby的官方网站有的单独的Ruby运行环境下载,还有第三方厂商也开发了一些Ruby开发环境。
我个人觉得最容易使用的是SUN开发的NetBeans 6.1 IDE环境,不仅仅支持Ruby,还支持好多其他语言编程。开源免费。

下载NetBeans V6.1
http://www.netbeans.org/index.html

============================================================================

类命名规则:首字母要大些,例如 class Book, 写成class xBook 就错了

@@ 表示引用变量,全局变量,值一旦改变,所有实例的值都跟着变

@ 与类的实例有关,每个实例都可以有不同的值

# 注释
回复  

使用道具 举报

2#
 楼主| 发表于 2-6-2008 02:05:15 | 只看该作者

这篇文章讲了怎么使用irb,比较简洁。

提示: 作者被禁止或删除, 无法发言
http://weblogs.java.net/blog/ble ... ve_been_playin.html

Dir.pwd
查看当前路径

Dir.chdir("D://Ruby/Programs/MyFirstProject/lib")  
改变路径

Dir["*.rb"]   
列文件

load 'main.rb'  
引用rb文件到irb环境
回复  

使用道具 举报

3#
 楼主| 发表于 2-6-2008 02:28:11 | 只看该作者

类属性

提示: 作者被禁止或删除, 无法发言
class Book

    def getIVar
        @aIVar
    end

    def setIVar(s)
        @aIVar = s
    end

end

上边的代码完成了设置值,和取值的功能
---------------------------------------------

class Book

    attr_reader :aIVar
   
    attr_writer :aIVar   

end

取值的功能可以直接用关键字 attr_reader和attr_writer代替
----------------------------------------------

class Book
    attr_accessor :aIVar
end

进一步可以直接用属性关键字 attr_accessor 代替reader writer
----------------------------------------------------

class Book
    attr_accessor :aIVar, :otherVar
end

同时设置多个属性的情况
回复  

使用道具 举报

4#
 楼主| 发表于 2-6-2008 03:02:29 | 只看该作者

常量变量作用域

提示: 作者被禁止或删除, 无法发言
#外部常量
CONSTANT_OUT = 9

class DTTest
    #内部常量
    CONSTANT_CLASS = 10
    #全局变量
    @@classVar = 11

    def sm1
        localVar = 13
        puts @@classVar
        #局部变量
        puts @iVar
        #私有变量
        puts localVAr
    end

    def sm2
        puts @@classVar
        puts @iVar
        puts localVar
    end

    #初始化过程函数
    def initialize
        @iVar = 12
    end
end

#=========================================

#访问全局变量语法
::CONSTANT_OUT
DTTest::CONSTANT_CLASS
回复  

使用道具 举报

5#
 楼主| 发表于 2-6-2008 03:23:28 | 只看该作者

输出

提示: 作者被禁止或删除, 无法发言
#赋值
a=1; b=2; c=6

puts 'Hello World!'
puts a+b+c
puts ''

#执行外部命令
puts 'date'

#格式化输出文本
print "a=#{a} b=#{b} c=#{c}"
回复  

使用道具 举报

6#
 楼主| 发表于 2-6-2008 03:35:17 | 只看该作者

循环

提示: 作者被禁止或删除, 无法发言
i = 1
#While Loop
while i > 0
    print "#{i} "
    i+=1
    if i > 9
        break
    end
end
puts

# For ... In
for var in 1..9
    print "#{var} "
end
puts

# .times
9.times do |var|
    print "#{var}"
end
puts

# .upto
1.upto(9) do |var|
    print "#{var}"
end
puts

#从1到9,步长3
1.step(9, 3) do |var|
    print "#{var}"
end
puts
回复  

使用道具 举报

7#
 楼主| 发表于 2-6-2008 03:44:10 | 只看该作者

for each

提示: 作者被禁止或删除, 无法发言
a=[1, 'dog', 3, 4, 5]
b=['cat', 'dog', 'bat', 'dingo']
c='Hello World!'

a.each do |var|
    puts var
end

b.each do |var|
    puts var
end

#读取一个字节
c.each_byte do |var|
    #输出一个字节
    putc var
    putc ':'
end

for var in a
    puts var
end

for var in b
    puts var
end

for var in c
    puts var
    putc ':'
end
回复  

使用道具 举报

8#
 楼主| 发表于 2-6-2008 03:57:09 | 只看该作者

module封装

提示: 作者被禁止或删除, 无法发言
module Debug
  def who_am_i
    "#{self.class.name}"
  end
  def printCVar
    puts self.class::CVar
  end
end

class One
  include Debug
  CVar = 10
end

class Two
  include Debug
  CVar = 20
end
回复  

使用道具 举报

9#
发表于 2-6-2008 04:01:37 | 只看该作者
虽然完全看不懂xblue说的话,但是这么晚了还有人在水区灌水,真是辛苦呀
回复  

使用道具 举报

10#
 楼主| 发表于 2-6-2008 04:08:03 | 只看该作者

异常处理

提示: 作者被禁止或删除, 无法发言
#Exceptions

def ourFunct(x, y)
  begin
    z=x/(y*y)
    return z
    rescue ZeroDisisionError
      puts "Divide by Zero Error!"
  end
end
回复  

使用道具 举报

11#
发表于 2-6-2008 08:17:46 | 只看该作者


虽然小哈完全看不懂xblues说的话,可是这么晚了还在看别人灌水,真是辛苦呀
回复  

使用道具 举报

12#
发表于 2-6-2008 09:58:20 | 只看该作者
原帖由 coredump 于 2-6-2008 08:17 发表


虽然小哈完全看不懂xblues说的话,可是这么晚了还在看别人灌水,真是辛苦呀

回复  

使用道具 举报

13#
发表于 2-6-2008 11:45:33 | 只看该作者

回复 #10 xblues 的帖子

虫虫太强了,偶们领导希望偶能够被ruby蹂躏一下,可是偶实在不感兴趣
回复  

使用道具 举报

14#
 楼主| 发表于 2-6-2008 11:50:44 | 只看该作者
提示: 作者被禁止或删除, 无法发言
  Ruby 语言本身学起来容易,有两天就可以上手了。你们领导说的是ROR吧?ROR的话可能还需要多点时间。你们领导想用Ruby干什么呀?我觉得现在关键是我学得没有目的性,你说说看你们领导想干什么,我们一起研究。
回复  

使用道具 举报

15#
发表于 2-6-2008 12:14:15 | 只看该作者

回复 #14 xblues 的帖子

公司接了一个美国公司的外包,人家很多内容都是用ruby和ROR做的,可是偶是做java的,实在是不愿意去做,偶java还没弄清楚呢
而且最近更夸张,ms要让偶去搞vb6.0,想死的心都有了
回复  

使用道具 举报

16#
 楼主| 发表于 2-6-2008 13:28:57 | 只看该作者
提示: 作者被禁止或删除, 无法发言
其实是好机会!正好利用机会好好学习新知识! 这样的机会我司求之不得呢。同样是美国公司,我们公司很守旧,我只能自己偷摸地学习新知识。 同样是人,差距咋就那么地大呢。
回复  

使用道具 举报

17#
发表于 2-6-2008 15:10:07 | 只看该作者

回复 #16 xblues 的帖子

偶老本行都没弄清楚呢,而且按这种搞法弄下去,偶早晚成杂烩饭了
回复  

使用道具 举报

18#
 楼主| 发表于 2-6-2008 15:17:16 | 只看该作者

回复 #18 chubbyroo 的帖子

提示: 作者被禁止或删除, 无法发言
我从一开始就是大杂烩,到现在混得还滋润的。
回复  

使用道具 举报

19#
发表于 2-6-2008 15:20:51 | 只看该作者

回复 #19 xblues 的帖子

虫虫你是做什么工作的啊
回复  

使用道具 举报

20#
 楼主| 发表于 2-6-2008 17:27:07 | 只看该作者
提示: 作者被禁止或删除, 无法发言
什么都做,法律允许的我做,法律不允许的我尽量不做。
回复  

使用道具 举报

21#
发表于 2-6-2008 17:47:52 | 只看该作者
哈哈,尽量不做,那就是还有可能做罗?
回复  

使用道具 举报

22#
发表于 2-6-2008 17:52:49 | 只看该作者

回复 #20 xblues 的帖子

回复  

使用道具 举报

23#
发表于 2-6-2008 20:12:18 | 只看该作者
回复  

使用道具 举报

24#
发表于 15-6-2008 00:32:25 | 只看该作者
LZ看来不仅仅精通分析数据,佩服佩服~~
回复  

使用道具 举报

您需要登录后才可以回帖 登录 | FreeOZ用户注册

本版积分规则

小黑屋|手机版|Archiver|FreeOZ论坛

GMT+10, 29-4-2024 03:47 , Processed in 0.065126 second(s), 39 queries , Gzip On, Redis On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表