FreeOZ论坛

标题: Ruby -- 学习笔记 [打印本页]

作者: xblues    时间: 2-6-2008 02:28
提示: 作者被禁止或删除, 无法发言 标题: Ruby -- 学习笔记
下载了一个VTC的视频教程,我边看边学,边记笔记。

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

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

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

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

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

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

# 注释
作者: xblues    时间: 2-6-2008 03:05
提示: 作者被禁止或删除, 无法发言 标题: 这篇文章讲了怎么使用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环境
作者: xblues    时间: 2-6-2008 03:28
提示: 作者被禁止或删除, 无法发言 标题: 类属性
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

同时设置多个属性的情况
作者: xblues    时间: 2-6-2008 04:02
提示: 作者被禁止或删除, 无法发言 标题: 常量变量作用域
#外部常量
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
作者: xblues    时间: 2-6-2008 04:23
提示: 作者被禁止或删除, 无法发言 标题: 输出
#赋值
a=1; b=2; c=6

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

#执行外部命令
puts 'date'

#格式化输出文本
print "a=#{a} b=#{b} c=#{c}"
作者: xblues    时间: 2-6-2008 04:35
提示: 作者被禁止或删除, 无法发言 标题: 循环
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
作者: xblues    时间: 2-6-2008 04:44
提示: 作者被禁止或删除, 无法发言 标题: 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
作者: xblues    时间: 2-6-2008 04:57
提示: 作者被禁止或删除, 无法发言 标题: 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
作者: zzmmy    时间: 2-6-2008 05:01
虽然完全看不懂xblue说的话,但是这么晚了还有人在水区灌水,真是辛苦呀
作者: xblues    时间: 2-6-2008 05:08
提示: 作者被禁止或删除, 无法发言 标题: 异常处理
#Exceptions

def ourFunct(x, y)
  begin
    z=x/(y*y)
    return z
    rescue ZeroDisisionError
      puts "Divide by Zero Error!"
  end
end
作者: coredump    时间: 2-6-2008 09:17
原帖由 zzmmy 于 2-6-2008 04:01 发表
虽然完全看不懂xblue说的话,但是这么晚了还有人在水区灌水,真是辛苦呀


虽然小哈完全看不懂xblues说的话,可是这么晚了还在看别人灌水,真是辛苦呀
作者: 我爱猫眯    时间: 2-6-2008 10:58
原帖由 coredump 于 2-6-2008 08:17 发表


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


作者: chubbyroo    时间: 2-6-2008 12:45
标题: 回复 #10 xblues 的帖子
虫虫太强了,偶们领导希望偶能够被ruby蹂躏一下,可是偶实在不感兴趣
作者: xblues    时间: 2-6-2008 12:50
提示: 作者被禁止或删除, 无法发言   Ruby 语言本身学起来容易,有两天就可以上手了。你们领导说的是ROR吧?ROR的话可能还需要多点时间。你们领导想用Ruby干什么呀?我觉得现在关键是我学得没有目的性,你说说看你们领导想干什么,我们一起研究。
作者: chubbyroo    时间: 2-6-2008 13:14
标题: 回复 #14 xblues 的帖子
公司接了一个美国公司的外包,人家很多内容都是用ruby和ROR做的,可是偶是做java的,实在是不愿意去做,偶java还没弄清楚呢
而且最近更夸张,ms要让偶去搞vb6.0,想死的心都有了
作者: xblues    时间: 2-6-2008 14:28
提示: 作者被禁止或删除, 无法发言 其实是好机会!正好利用机会好好学习新知识! 这样的机会我司求之不得呢。同样是美国公司,我们公司很守旧,我只能自己偷摸地学习新知识。 同样是人,差距咋就那么地大呢。
作者: chubbyroo    时间: 2-6-2008 16:10
标题: 回复 #16 xblues 的帖子
偶老本行都没弄清楚呢,而且按这种搞法弄下去,偶早晚成杂烩饭了
作者: xblues    时间: 2-6-2008 16:17
提示: 作者被禁止或删除, 无法发言 标题: 回复 #18 chubbyroo 的帖子
我从一开始就是大杂烩,到现在混得还滋润的。
作者: chubbyroo    时间: 2-6-2008 16:20
标题: 回复 #19 xblues 的帖子
虫虫你是做什么工作的啊
作者: xblues    时间: 2-6-2008 18:27
提示: 作者被禁止或删除, 无法发言 什么都做,法律允许的我做,法律不允许的我尽量不做。
作者: 8戒    时间: 2-6-2008 18:47
哈哈,尽量不做,那就是还有可能做罗?
作者: chubbyroo    时间: 2-6-2008 18:52
标题: 回复 #20 xblues 的帖子

作者: chubbycat    时间: 2-6-2008 21:12

作者: ryan88    时间: 15-6-2008 01:32
LZ看来不仅仅精通分析数据,佩服佩服~~




欢迎光临 FreeOZ论坛 (https://www.freeoz.org/ibbs/) Powered by Discuz! X3.2