用了一天的时间来装好了ruby需要的各种东东之后,开始学习基础语法,由于之前有java基础,所以学起来来感觉也不难,但也有一两个地方也不怎么懂。
首先使用eclipse插件来开发ruby.
建立了一个ruby project,下面新建一个hi.rb。作为一个程序员,开始的和一个程序永远是:hello world.所以我决定先从这个输出开始,但不是hello world,是hello ruby。哈哈
puts "hello ruby"
很简单的一个输出语句,但意义非常大,是开始学习一门新语言的里程碑,虽然它只有几个字,但表达出了个人学习ruby的决心和……(有点装13了,被天朝各种报告害的)
于是又开始了一个看起来很牛的程序,我要开始一个计算机
puts "number1:"
number1=gets
puts "opator:"
op=gets
puts "number2:"
number2=gets
case op.chomp
when "+"
result=number1.to_i+number2.to_i
when "-"
result=number1.to_i-number2.to_i
when "*"
result=number1.to_i*number2.to_i
when "/"
result=number1.to_i/number2.to_i
end
puts "#{number1.chomp} #{op.chomp} #{number2.chomp} = #{result}"
一看,这不就是cmd里面经常用的批处理吗?看来ruby果然是借鉴了各种语言,向各种语言致敬.......呀!!!!
但有eclipse里面直接运行的话,就会出现一个不知道什么原因的问题,运行起来之后不会出现什么东西,必须把所有的东西输入完成后才会出现我puts出来的,不知道是不是我的插件没有装好的原因,也不管了,反正不懂,先用DOS来运行,直接跳进去,ruby -c hi.rb,假装的检查下有没有错误,然后ruby hi.rb。运行起来
美其名曰一个计算器就做好了。so easy!!!这里看来学到的就是有一个输出和获取控制台输入了。于是又开始学习一个高级的东西
各种变量的定义什么,$,@,@@,_字母,大写学量,这些都是些基础,看一下就可以了。经常用到就会熟悉;
于是第一个要用点心的来了。ruby的三大基础数据类型:数值型、范围、符号,第一个比较好理解,后面的是以前没有接触过的
数值类型又分为两类:整数和浮点
整数又包括:Bignum和Fixnum。这两个的区别也没多大,Bignum表示的范围是2的30次方。Fixnum表示的范围是2的30次方-1;所以也就没有多大区别,反正也是会自动转换
浮点只要学过程序的人都知道,比如12.3就是浮点
后面这两个对于java程序员来说比较难理解,范围还好,就是表示一个数据的范围,比如1..10表示1~10包括两端的,1...10表示1~10,但不包括10,这是Rang类的实例,里面包括有很多,相比java灵活多了,比如step/each/reject/select.......等。
对应的运行效果:
其中reject表示,从数组中减去满足条件的数据,select就是选择出满足条件的数据
接下来就是符号了,感觉很怪异,怎么还有这样的数据类型。对于符号的定义:符号对象就是一个字符串,一个方法,一个类或者一个标识符的内部表示形式,创建一个符号也就是在对象前面加一个冒号:就行了。比如
结果都为true。也就表明只要对象名相同,符号对象就相同,字符串和符号对象是一一对应的。
另外符号对象和字符串对象可以用方法to_s,和to_sym来相互转换。
比较难理解的就是符号对象和符号对象内容,具体的结果和原因如里面的注释所描述的那样
最后一个内容就是各种运算符,逻辑、比较赋值等的比较。
值的注意的就是这几点:===还有一个**。第一个的特殊性在于运算的选择性,如果左边为一个普通数据就和==相同,只有比较的功能,如果左边是一个Rang.就表示右边是否包括在左边的范围内,如(1...19)===10结果为true。后一个**是ruby特有的运算符,表示幂运算,2**3=8,也就是2的3次方
赋值的比较好理解,但也是需要注意,尤其是数组赋值
下面这个是交换赋值,比较特殊,因为不需要第3方的变量
结果为
表示真的很神奇,是不是他源码里面其实还有一个第三方变量呢?现在还没有到达看源码的水平,先用着,不管原因。
如果是单纯的数组赋值还是比较容易懂,但如果要嵌套的话就比较不好理解,至少现在得用笔在本子上画几个才能得到最后的结果
到现在为止,总结下学习的过程就是感觉ruby比较神奇,不知道到以后学到ruby on rails的会不会有更神奇的东西出现呢,听说是可以全自动生成一个网站,嗯,wonderful!!!!