随笔分类 -  11.Ruby

摘要:ROR集成了诸多"先进"的理念,比如mvc,模板替换,orm,实体验证,ajax,数据库迁移,session的多种保存机制...等等,也许在今天看来,这些东西都是司空见惯的,但要知道ror框架是在几年前就发布的,所以ROR一出来就一路走红,甚至一度号称"web中小型开发效率天下无敌",也不是浪得虚名的。但是随着Asp.Net的不断进步,ROR中的这些特性也慢慢都被MS吸收进来了,比如:1.MVC ... 阅读全文
posted @ 2010-03-05 10:55 菩提树下的杨过 阅读(951) 评论(3) 推荐(1) 编辑
摘要:symbol是啥就不深入的讨论了,只简单说说symbol的好处ruby内部对于每个对象,都会有一个数字id用来标识并区分,可以用xxx.object_id来查看 输出结果类似如下:32088750320887303208871032088690可以发现即使是同样内容的字符串"0001",在ruby解释器内部每次也都是当作不同的对象来处理的,这样随着字符中的调用次数增加,ruby解释器的负担不是越来... 阅读全文
posted @ 2010-03-04 11:57 菩提树下的杨过 阅读(2924) 评论(1) 推荐(0) 编辑
摘要:理解 Ruby Symbol,第 1 部分http://www.ibm.com/developerworks/cn/opensource/os-cn-rubysbl/理解 Ruby Symbol ,第 2 部分: Symbol 内幕http://www.ibm.com/developerworks/cn/opensource/os-cn-rubysbl2/index.html 阅读全文
posted @ 2010-03-04 10:32 菩提树下的杨过 阅读(530) 评论(0) 推荐(0) 编辑
摘要:机器上没安装ROR开发环境的朋友,请先参看 ruby on rails + mysql 开发环境搭建架好环境注:ROR的经典著作“Web开发敏捷之道--应用Rails进行敏捷Web开发”目前中文的只有第二版,作者写书的环境是rails 1.x,现在rails的版本已经更新至2.3.5,很多东西已经变了,如果参考第二版的书上一步步来做的话,根本做不下去。(目前该书已经出了第三... 阅读全文
posted @ 2010-03-02 14:42 菩提树下的杨过 阅读(1010) 评论(0) 推荐(0) 编辑
摘要:共同点:都是用来屏幕输出的。不同点:puts 输出内容后,会自动换行(如果内容参数为空,则仅输出一个换行符号);另外如果内容参数中有转义符,输出时将先处理转义再输出p 基本与puts相同,但不会处理参数中的转义符号print 基本与puts相同,但输出内容后,不会自动在结尾加上换行符s = "aaaa\nbb\tbb"p sp "****************"puts sp "********... 阅读全文
posted @ 2010-02-22 14:02 菩提树下的杨过 阅读(12731) 评论(1) 推荐(0) 编辑
摘要:先来看别名,ruby中可以给方法或全局变量起一个别名,有意思的是:方法别名定义后,即使对应的方法在后面的代码中重新定义(即修改内部实现)后,别名仍然可以调用到修改前的方法,而全局变量则不行。def meth puts "This is meth"endalias:orgin_meth:methmeth #=> This is methorgin_meth #=>This is met... 阅读全文
posted @ 2010-02-20 11:30 菩提树下的杨过 阅读(5548) 评论(3) 推荐(0) 编辑
摘要:#静态方法的4种写法class Test def Test.StaticMethod1 puts "Test.StaticMethod1" end def self.StaticMethod2 puts "Test.StaticMethod2" end class << Test def StaticMethod3 puts "Test.StaticMethod3" end e... 阅读全文
posted @ 2010-02-19 20:05 菩提树下的杨过 阅读(2874) 评论(0) 推荐(0) 编辑
摘要:用ROR框架做开发,基本上只要SciTE+资源管理器+命令行 就可以了,但如果您确实一时很难忘记IDE环境,而且机器配置又不咋地,建议您重返三剑客时代,找找当年DreamWeaver的感觉 :)http://rubyweaver.gilluminate.com/到这上面下载rhtml for dreamweaver的插件安装后,dreamweaver就能认别rhtml格式了,您可以象编辑html一... 阅读全文
posted @ 2010-02-19 12:36 菩提树下的杨过 阅读(6974) 评论(6) 推荐(0) 编辑
摘要:ror对于初学者来讲,可能最大的困难莫过于开发环境的安装与搭建,今天折腾了大半天基本搞定了,把过程贴在这里,以便初学者少走弯路。1.安装ruby 1.8.6 打开 http://rubyforge.org/frs/?group_id=167,安装 ruby1.8.6-26最终版本下载完成后,可在命令行下键入 ruby -v验证版本 (如果在命令行里输入ruby提示找到不该命令,请将c:\ruby\... 阅读全文
posted @ 2010-02-18 13:51 菩提树下的杨过 阅读(9600) 评论(0) 推荐(2) 编辑
摘要:闭包的一个重要特征是:过程(方法)内部定义的变量,即使在方法调用完成以后,仍然可以继续引用到!(即延长了生命周期)def method(n) puts "n=#{n}"; #测试用 return proc{|i| n +=i } #关键:proc是一个过程对象,只能由"委托"用call来调用,这里在过程内部引用了参数变量n,将会在多次call该过程后,保留对n的引用,形成闭包!endaDeleg... 阅读全文
posted @ 2010-02-12 17:05 菩提树下的杨过 阅读(841) 评论(0) 推荐(1) 编辑
摘要:ruby的数组基本使用,跟c#中的数组比起来,最不习惯的区别在于允许负索引(跟javascript到有几分相似)arr=[3,4,5,6,7,8,9]puts arr[0] # 3puts arr.first # 3puts arr[arr.length-1] # 9puts arr[arr.size-1] # 9puts arr.last #9puts arr[-1] #9,下标为-1,即... 阅读全文
posted @ 2010-02-11 21:00 菩提树下的杨过 阅读(1135) 评论(0) 推荐(0) 编辑
摘要:ruby中的module与.net中的namespace有点类似,可以用来区分同名但属于不同开发者(或组织)的代码。下面的代码,定义了一个Me模块,里面的sqrt与Math模块中的sqrt重名,另外还有一个重名常量PI#定义一个模块(有点类似.net中的命名空间)module Me def sqrt(num1,num2=-1) return "num1=#{num1},num2=#{num2}"... 阅读全文
posted @ 2010-02-11 14:37 菩提树下的杨过 阅读(5360) 评论(0) 推荐(1) 编辑
摘要:动态语言之所以“动态”,最明显的特征就是:类实例的行为/属性可以在new出后,动态修改!个人觉得这种处理相对java/c#(静态语言)来说,更符合现实世界。比如:一个人刚出生时,除了哭、吃奶等这些基本原始本能,其它的几乎全都不会(原始本能可理解类定义中最开始定义的属性和方法),但随着时间推移,学会了看书,走路,说话...(相当于新增了方法/属性),再往后的人生谁也无法预料,... 阅读全文
posted @ 2010-02-11 11:21 菩提树下的杨过 阅读(1364) 评论(0) 推荐(0) 编辑
摘要:看了几天ruby,发现c#中很多一直被称道的语法特性,ruby早在几年前就有了:1.c#中的params关键字 class Program { static void Main(string[] args) { Console.WriteLine(Sum()); Console.WriteLine(Sum(3,6)); Console.Read(); } static int Sum(params... 阅读全文
posted @ 2010-02-11 10:57 菩提树下的杨过 阅读(1058) 评论(0) 推荐(0) 编辑
摘要:ruby语言跟c#的一些重要差别在于:1.ruby是动态语言,c#是静态语言--即对象在new出来以后,ruby还可以动态给对象实例添加一些属性或方法(javascript也是如此)2.ruby中刻意弱化了变量类型这个概念,默认情况下变量/方法都不需要声明具体(返回)类型,但其实在ruby内部,会自动根据变量的值分配类型。(可以通过 “puts 变量.class“查看)3.... 阅读全文
posted @ 2010-02-10 21:50 菩提树下的杨过 阅读(1501) 评论(0) 推荐(1) 编辑
摘要:虽然ruby/ruby on rails从2007年就一直获奖无数,但身为一个中国人,一直对小日本创造的东西不怎么感兴趣,想想其实也没必要,技术本身是无国界的,日本其实也有值得学习的地方(扯远了,呵)单从技术而言,ruby本身确实很爽,令程序员的工作变得轻松有趣!下面的代码演示了如何找出100以内的素数:using System;namespace Mersenne{ class Program ... 阅读全文
posted @ 2010-02-09 20:47 菩提树下的杨过 阅读(1226) 评论(1) 推荐(0) 编辑