终于下定决心,学习ruby了,对这种新的语言感到很是兴奋。压抑住内心的喜悦简单介绍一下它的下载安装方式。(1)下载地址:
http://www.rubyonrails.org/down
我使用的系统是windows,自然是选择Windows installer
ruby在我看来很多地方都不太成熟,就拿安装方式来说,缺少图形化的指引界面,据说以前的安装方式更加愚蠢,还好有了RubyGems的出现,一切变得有些简单了。
(2)安装
1.安装ruby
最直接的安装方式了,一直next到最后结束为止(最新的版本是 1.8.4 (2006-04-14))。
2.安装RubyGems
在命令行中运行“ruby setup.rb”即可
3.安装rails
有了rubygems的帮助,安装rails就变得简单些了。启动命令行窗口,输入“gem install rails –remote”,剩下的时间就是等待,由于这是采用在线安装,所以安装的速度就取决于你的网速了,呵呵。
学java时就习惯了操作dos窗口,所以对这种往往要操作命令行的方式并没有太大的排斥,倒是那些.net的新手会有些不适应,毕竟一个新的平台还需要很多的人来支持,想当初java的使用往往也是通过操作命令行的。
(3)简单的使用一下ruby
装完了之后,你一定和我一样迫不及待的想尝试一下ruby的魅力所在。但是先不要急,首先确认一下ruby是否已经真正的安装成功。启动命令行,输入“ruby -v”,如果得到的信息类似如下:
ruby 1.8.4 (2006-04-14) [i386-mswin32]
说明你的系统中已经可以使用ruby了。
好的,让我们来初步接触一下ruby。这个时候大多数人想到的是写一个hello,world的程序了解一下ruby的基本语法,呵呵,其实不用的,在命令行中输入:
ruby
print "hello,world!"
^D
这个时候就可以见到大家熟悉的"hello,world"了。发现了ruby的神奇了吧,不错,ruby作为一种脚本语言具有很独特的魅力。当然了,你也何以定制自己的ruby程序的,新建一个文件,取名为test.rb,输入以下内容:
print("测试")
好了,将命令行转至test.rb所在的目录,输入test,就可以看到ruby输出中文"测试"了。
结束了无聊的事情之后,让我们开始真正的了解ruby,结合自己的所学,这里重点介绍一下ruby和java在语法上的不同:
<1>字符串:
java中的字符串一律用""来表示,''只是用来描述字符的,在ruby中""和''都是来表示字符串的,所不同的是""所表示的字符串会经过转义处理,比如print "\n测试",输出的结果是:
测试
而print '\n测试',输出的结果是:
\n测试
从上面的代码可以简单看出在""中"\n"被用作了换行,而在''中"\n"被作为了一般的字符串处理。
<2>变量作用域的声明:
<3>特殊的数组:
java中的数组元素类型必须是一样的,在ruby中,他们可以是不一样的。比如可以这样定义一个数组:
a=[2000," Allex", true,"50"]
数组元素的引用也很特别,a[0]很显然吧,那么a[0,2]呢,还有a[0..2]呢,呵呵,写一段代码测试一下哈:
print a[0,2] 结果是: 2000allex
print a[0..2] 结果是: 2000allextrue
a[0,2]相当于substring,但是又和java中的substring不一样,它的使用和oracle中的substr是完全一样的,后面的2 指子串的长度;a[0..2]意思是指从0到2的元素,呵呵,有点神奇吧,还有更神奇的事情呢,a[-1]是什么呢?呵呵,测试发现a[-1]打出来的是 50,有此可见,ruby中对数组的引用可以采用负数,区别是反向引用,这为我们有时编程带来了极大的便利。那么这种引用方式是否会避免让人深恶痛绝的越 位异常呢,写段代码测试先:
print a[4] 结果是: nil
print a[-5] 结果是: nil
这里打印的nil就是和java中的null是一个意思呀,完全明白了吧,也发生了让人讨厌的越位异常,55~~
<4>哈希表
哈希表作为一种极为常见的数据形式自然是得到了ruby的支持,写段代码简单说明下:
h = {1 => 2, "2" => "4"}
print h[1]
print h["2"]
pring h[2]
打印出的结果是:24nil,所以千万不要搞混了,[]中的是key,不要和数组混淆了。
(4)ruby的神奇之处:
<1>万物皆对象:
和java中的基本类型不一样的是,ruby中的所谓基本类型也是对象(具有属性和行为),举个例子,-1在java中是基本类型,为了获得它的绝对值, 需要如下调用Math.abs(-1),这里的处理完全是一种非对象的方式,在ruby中这些“基本类型”也是对象,它们和其它的对象没有任何区别,因此 作为对象的-1完全有理由知道自己的绝对值,哈哈,所以如下调用-1.abs()是完全正确的。
<2>聪明的ruby
在java中如果要把"abs"翻倍成"absabs",需要比较复杂的逻辑,而在ruby中只需"abs"*2即可。
<3>超长的数字支持能力
ruby可以处理的数字长度惊人,写个例子描述一下哈:
def jiecheng(n) if n==1 1 else n*jiecheng(n-1) end end print jiechen(700)
这里是计算700的阶乘,显示的结果如下:
24220401247502721798678750938123522185909833857292072994506796649299381602156474 20444519051666484819249321456671497049842327525093874817343838393757631459228450 82849997227127414016031105783055846363633712407933244782073928110103711266538753 71807902575779192731082629169047504052350550600840122194928923756351362966220200 23178109619818046179906897450420548912610870589088056503913584562211037693288782 96090019507413099979903597071143627933909429203286626049637582546142772755571000 30077529061414706395743900249885149142644498650064588732269519418995459703339103 51588559232940829569276986080222200289966128343931630028789203382654749603473516 31476526277225717115468671686281418472874118714793634950165319745745566041313450 60491220449470526233846820888647906733095692923842156117880142749549059141483623 03226200246816441301934846080254998647325270606104512088058712293349862185399243 30905429957638171880624723819523260464261432989407063616375367209123275161237834 82738407578735677175328792425183371195406029436094116293490095660437208367374010 90882392975031224612531245642687296717053747734506443314924558119560479901478736 20955692516151773711039975473055185406632842001472865789628693652378708020647632 71571364413187734327510072631080569582516938112809572432024601571117786174726837 61623869704457588005158037495665069625778930898095725794710701639238231528115579 61912028737868923893433519850866593391725714397527770759059751198934506870173594 01696725618647131071150167473689926901160826337621723466889698408625172643840000 00000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000 0000000000(5)ruby之根本:
注: 现打算系统的学习ruby,上文大约是1年之前所写,后来因为时间的关系没有跟进,现在闲暇的时间比较充裕,特整理出一个学ruby的系列。
离线安装rails:
1.下载rails
2.解压缩到%RUBY_HOME%\lib\ruby\gems\1.8\gems下,执行gem install rails --include-dependencies即可,这种方式不会重新下载rails,只是小更新一下,顺便安装rails