听老歌 发表于 2011-10-24 11:10

ror学习小结1

ror学习小结1



前两天跟着书,开始自学RUBY和ROR,开始笔记之,开始感受小日本的ROR如何牛B法

安装ruby后看版本:ruby -v
安装rails:gem install rails 3.0.3
         gem install rails --include-dependencies(记得cross gfw)
   验证安装rails -v

2 手动编译
   ruby d:\xxxx\xxx.rb
   语法检查ruby -c xxx.rb
   打开警告 -w
   执行字面脚本 ruby -e 'puts "hello"',单引号中的是语句,多个语句用分号
3 获得输入number1=gets将用户输入保存到number1变量中去
4 常量:全部大写;
局部变量:以小写字母或者下划线开头
全局变量:以$开头

5RUBY中三大基本数据型:数值型,范围型,符号型
   1)数值型
      大于2的30次方为bignum;小于的为fixnum
    2)范围型
         a..b:定义的是从值a到b的范围,包括a,b,以及值a,值B中间的值
         a...b:定义的是从值a到b的范围,包括a,b,以及值a,值B中间的值,不包括值b
    有相关的方法:a=0..59
                找最小: a.min
                找最大:a,max,找最后一个值a.end,第一个a.first,判断是否有这个值
                a.include?100(看范围a中是否有值100)
    3)regect:将范围转为数组,并删除条满足条件元素
          select:将该范围转为数组,只选择满足条件的
         each:输出每个范围的每个元素
      比如:count.reject(|i|i<15);
            count=1..20;
            count.each do|i|
                  puts i.to_s
             end 4)符号对象 ,比如
      abc="dddd";
      ly=:abc
      puts ly==:"abc" 测试ly是否等于字符串abc所对应的符号对象
      输出为true
   
       字符串和符号对象的转换:dcy="abc"
         ly=:"abc"
          puts dcy.to_sym==ly
          putsly.to_s==dcy都输出 true
   也可以通过%s{dcy}来创建符号对象
   
6) 算术运算符
    **乘方运算,比如2**3=8
7) <=>:比较两个对象,如果左边对象小于右边,返回-1;如果左边对象等于右边,返回0,如果左边对象大于右边,

范围1
8)表达式并行赋值
    比如C,D="HI","HELLO"
交换的话
    c,d=d,c
则C变为D,D变为C,如果任何一方的变量多于另外一方,则多余一方的设置为nul
    嵌套赋值 test=["a","b","c","d"]
      b,(c,d),e=test
       则b="a" (c,d)="b" e="d"而d=null
   SHE=["a","b","c]
   flh=['123","456","658","erer"]
   S,H,*E=flh
   则s=123,h=456,E=(658,erer)
    又如a,(b,*c),d="S",["H","E"] 括号对括号的原则,则a=S,(b,*c)=,d=null,b=H,c=E
9) 注意,是ifthen
          elsif ....

          else
            end 10) unless语句
   unless 条件then
         代码块1
   else
      代码块2
      end
   当true时,执行else语句块代码,为false时,才执行then的代码 11)case xxxx
   whenxxxx
   when   xxxx
   else

end 12) for..in语句shujuaray=["xxx","xxx"...]
    for shuju in shujinarray
   put shuju   
end
angle=("xxx"=>abc,"ddd"=>dfdff)
   for key,value in angle do
      put key+"指的是"+value
    end 13) 迭代器names=["xxx","xxxx","dfdf","xxcx]
   names.each do |name|
         puts name
      end 14) NEXT,跳出本次循环
15)单引号,双引号都可以用来表示字符串,其区别为:如果是单引号的话,原样输出字符串中的东西,双引号的话

,如果字符串中有特殊字符,则进行真实的转义,比如
   a="电风扇发射点\n大师傅似的\s....."
   b='adadasdsd:\n....\s'
16) 字符串操作:
    a<<b,将b串永久加到a串后
    puts "#{a}#{b}"
    重复次数:puts "#{a}#{b}"*3//重复连接3次
   复制字符串:dup只复制字符串内容,clone复制字符串并继承其特殊方法
   
   获取子字符串str="abcsdds",str为获得字符串,字符串位置从0开始
17) 哈希:person=Hash.new
    person["name"]=xxxxx 18) 数组 FOOD=["XXX',"DDD","XXX"....]
      food=Array.new
       food=xxxx food=xxxxx 对包含特殊字符或者空格的字符串转为数组,比如str=%W{ABC\S DSDSD\S SDSD\S\SDD}
    str=%w{ABC\S DSDSD\S SDSD\S\SDD}
   则%W 会 ABCDSDSDSDSD SDD
       %w 会ABC\S DSDSD\S SDSD\S\SDD
unshift():向数组头部添加数组元素
push():向尾部添加元素 <<向数组尾部添加一个数组元素
19 类型转换
   to_s:转字符串to_i:转为整数   to_f:转为浮点

20 类的创建
    类名第一个要大写字母,否则出错;要创建对象
    a=类名.new
   self:默认类本身
   可以定义同名的类2次,然后方法会合拼,但不建议使用。
   嵌套类 比如A::B,为B类在A类中了。
21 特殊类
    为某个特定的对象追加方法和属性,这些方法和属性封装到一个类中直接追加到对象中,类没特定的类名。比如class Animal
   end
   a=Animal.new
class <<a


   .....
end
21 def 方法:
    def xxxx()
      return
      end 22 特殊方法 class Dog
    end    dog=Dog.new
   def dog.show .....end 直接为类的实例添加了方法
23 类方法class Dog
       def Dog.show
       .....
   end
    end
    Dog.show 24 类的实例变量用于类内部共享数据。用@符号开头,而类变量可以在各个类之间共享数据
而类变量,用@@定义,可以在多个类中共享变量

25 属性读取器class Person
       def name
         @name
      end
end 26 属性定义标识符
    attrXXXX,TRUE 设置某个XXX属性为可写,false为只读
   attr_reader属性1,属性2....设置多个属性为只读
   attr_writer   属性1,属性2....设置多个属性为可写
    attr_accessor   属性1,属性2....   设置多个属性为可读写

27 代码块
    比如do
         //代码块内容end
   def say
         .....
          yield//则这里会调用代码块中的内容
      end
      say do
          puts
      end 28 类的继承:class 子类<<父类,类的构造方法命名为initialize
20 class A
   end
a=A.new
   如何通过a象JAVA反射那样得到A,可以这样:#{a.class}

2gua 发表于 2011-10-25 00:48

希望能坚持下来。

嘟猫猫 发表于 2011-10-25 15:40

谢谢分享,学习一下
页: [1]
查看完整版本: ror学习小结1