ror学习小结1

前两天跟着书,开始自学RUBY和ROR,开始笔记之,开始感受小日本的ROR如何牛B法 安装ruby后看版本:ruby -v 安装rails:gem install rails 3.0.3 gem install rails –include-dependencies(记得cross gfw) 验证安装rails -v2 手动编译 ruby d:\xxxx\xxx.rb 语法检查 ruby -c xxx.rb 打开警告 -w 执行字面脚本 ruby -e ‘puts “hello”‘,单引号中的是语句,多个语句用分号3 获得输入number1=gets将用户输入保存到number1变量中去4 常量:全部大写; 局部变量:以小写字母或者下划线开头 全局变量:以$开头 5 RUBY中三大基本数据型:数值型,范围型,符号型 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 puts ly.to_s==dcy 都输出 true 也可以通过%s{dcy}来创建符号对象 6) 算术运算符 **乘方运算,比如2**3=87) <=>:比较两个对象,如果左边对象小于右边,返回-1;如果左边对象等于右边,返回0,如果左边对象大于右边,范围18)表达式并行赋值 比如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)=[H,E],d=null,b=H,c=E9) 注意,是if then elsif …. else end10) unless语句 unless 条件 then 代码块1 else 代码块2 end 当true时,执行else语句块代码,为false时,才执行then的代码11)case xxxx when xxxx when xxxx else end12) 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 end13) 迭代器 names=[“xxx”,”xxxx”,”dfdf”,”xxcx] names.each do |name| puts name end14) 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[4,5]为获得字符串,字符串位置从0开始17) 哈希: person=Hash.new person[“name”]=xxxxx18) 数组 FOOD=[“XXX’,”DDD”,”XXX”….] food=Array.new food[0]=xxxx food[1]=xxxxx 对包含特殊字符或者空格的字符串转为数组,比如 str=%W{ABC\S DSDSD\S SDSD\S\SDD} str=%w{ABC\S DSDSD\S SDSD\S\SDD} 则%W 会 ABC DSDSD SDSD 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 end22 特殊方法 class Dog end dog=Dog.new def dog.show …..end 直接为类的实例添加了方法23 类方法 class Dog def Dog.show ….. end end Dog.show24 类的实例变量用于类内部共享数据。用@符号开头,而类变量可以在各个类之间共享数据 而类变量,用@@定义,可以在多个类中共享变量25 属性读取器 class Person def name @name endend26 属性定义标识符 attr XXXX,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 end28 类的继承:class 子类<<父类,类的构造方法命名为initialize20 class A end a=A.new 如何通过a象JAVA反射那样得到A,可以这样:#{a.class} 世上没有绝望的处境,只有对处境绝望的人。

ror学习小结1

相关文章:

你感兴趣的文章:

标签云: