摘要:Code highlighting produced by Actipro CodeHighlighter (freeware) http://www.CodeHighlighter.com/ -->class A def say puts "i'm a" end end class B class A def say puts "i...
阅读全文
随笔分类 - Ruby & Rails
摘要:迭代器是高级语言的特性,非常好用。 比如数组的迭代 [1,2,3].each{|n| puts n.to_s} (1..100).each{|n| puts n.to_s}迭代每个元素 字符串的迭代 "abdc".each_byte{|chr| printf "%c\n",chr} 迭代每个byte "a\nb\nc".each_line{|s| puts s} 以换行符进行分割迭代 ...
阅读全文
摘要:ruby中的数组由方括号创建,初始值可以放在方括号中并用逗号分割,数组元素的类型可以不一样,并且支持加法乘法运算。 ary = [1, 2, "3"] ary * 2 返回 [1, 2, "3", 1, 2, "3"] ary + ["lee", "ho"] 返回[1, 2, "3", "lee", "ho"] ary[0,2] 返回[1, 2] 从位置0开始获取两个元素 ary[0..2] ...
阅读全文
摘要:Ruby中的字符串处理非常灵活 "abc"[0] 返回97 就是a "abc"[1] 98 "abc"[2] 99 "abc"[3] nil "abc"[-1] 99 从后向前数 "abc"[-2] 98 "abc"[-3] 97 "abc"[-4] nil "abc" * 2 返回"abcabc" 支持乘法运算 "abc" + "def" 返回"
阅读全文
摘要:一 判断结构 if 表达式 elsif 表达式 else end if 表达式 then end #当写在一行时 需要用then if 表达式 #当表达式的结果为true时执行前面的代码 .. unless 表达式 #当表达式为false执行前面的代码 case 表达式 when 条件1 [,条件2] [then] when 条件3 [,条件...
阅读全文
摘要:我先写下我这两天自己的一些小经验。 一 如何使用gem删除新版本 保留旧版本 我们知道gem清除旧版软件的方法是gem cleanup 更新新版的办法是gem update 可是想删除新版保留旧版呢 方法: gem install rails --VERSION=1.2.6 安装1.2.6版的rails gem list 查看使用gem安装的软件: rails (1.2.6)(2.0.2) 两个...
阅读全文
摘要:前面已经介绍了有关Ruby语言上的东西,下面开始学习让Ruby流行起来的Rails平台。 Rails平台可以构建标准的MVC应用。 MVC就是控制器Controller,视图View,模型Model。 创建一个Rails项目的命令是:rails projectname,可以指定数据库类型进行创建,如 rails -d mysql projectname 我们创建一个demo项目: rails -...
阅读全文
摘要:1.1 创建一个Rails应用程序 $ rails app_name 可选项: -d, database=xxx 指定安装一个数据库(mysql oracle postgresql sqlite2 sqlite3 ), 默认情况下是数据库 -r, ruby-path= 指定Ruby的安装路径,如果没有指定,scrīpts使用env去找Ruby -f, freeze (冻结)freeze...
阅读全文
摘要:Ruby支持数组以及Hash,数组和Hash都是通过索引访问的,所不同的是数组通过数字索引,而Hash的索引可以是任何对象,所以数组访问速度更快(直接定位),而Hash则更加灵活,搜索元素速度更快(Hash算法定位索引,无需遍历)。 Ruby里面比较有特点的是,数组与Hash都可以容纳不同的对象,因为这是Ruby语言所决定的(非强类型语言,单根派生自Object) 数组的一个常用方法是 "lao...
阅读全文
摘要:ruby除了支持class外还支持module,module的作用有两个: 1 当作一组方法和常数的命名空间 防止命名冲突 2 可以被类mixin(混入),mixin module的类的实例则拥有了模块的方法。 不同的类混入了同样的模块,则可以拥有同样的功能,而无须去继承某个父类。 可以通过include一个module来实现c++中的多继承。 module CircularModule ...
阅读全文
摘要:Ruby的成员访问修饰关键字分为三种,与c#一样。 1 private 只能为该对象所调用的方法 2 protected 只能为该对象及其子对象所调用的方法 3 public 可以让任何对象所调用的方法 与c#不同的是,ruby的访问修饰符从定义处开始起作用,直到下一个访问修饰符出现时终止,比如 class Greeter def initialize end privat...
阅读全文
摘要:直接上代码 Rectangle.rb class Rectangle attr_accessor :width attr_accessor :height def initialize(wdth, hgt) @width = wdth @height = hgt end def area() return @width * @height ...
阅读全文
摘要:(一)类变量以及类方法 sample code class BankAccount @@interestRate = 6.5 def BankAccount.getInterestRate() @@interestRate end attr_accessor :balance def initialize(bal) @balance = bal end en...
阅读全文
摘要:(一)Ruby中一切都是对象,包括一个常数. 比如可以用.class属性来查看一个对象的类型,你可以看下1.class,会发现常数1的类型是Fixnum,1不过是Fixnum的一个实例。还可以使用-37这个Fixnum的实例方法abs来取得绝对值:-37.abs()会返回37 又如输入一个1.1.class,会返回Float。 (二)Ruby语法 Ruby中的类以class开始 以end结束,类...
阅读全文
摘要:开始我的Ruby之旅,写下学习笔记,是针对那些有其他OO语言经验的人写的,可以来看下神奇的Ruby。 第一个sample! 初次见面。 #!/usr/bin/env ruby class MegaGreeter attr_accessor :names # Create the object def initialize(names = "World") @nam...
阅读全文