男人眼泪中的 Ruby (一)
我想作一个职业技术作家,可是我太感性,写不出严谨的技术文章,总是喜欢在自己的文章中显露太多的感情色彩。这个系列文章从名字中就显露出我最近的感情色彩,不可否认我最近处于痛苦之中,经常暗自流泪。不知道在男人眼泪中的ruby是什么滋味,想知道吗?看看我的这个系列文章吧。
一:Hate ? World
记得大部分的文章在介绍语言的时候总是喜欢用Hello World的小程序,那个程序可以最好的展示语言的结构,很是经典,不过我的心情仿佛不太喜欢这个世界,我可能讨厌无情的世界,虚伪的世界,或者?的世界。看看下面的代码:
print('Enter the World name(ex sad)') worldname=gets() puts("Hate the #{worldname} world")
这段代码的意思是根据提示输入你最讨厌的世界的名字,然后输出 Hate the ? world。很简单的一个程序,变通了一下 Hello World。在这个小程序里面可以讲四点:
- print('') 这个是把单引号里面的字符输出来。他在输出字符串之后不会换行。
- gets() 获取输入的string,赋给其他变量。
- puts('')是把引号里面的内容输出来,输出之后会换行,这个是和print的区别。
- #{}这个里面的东西会被输出。我说里面东西的意思是想说明里面不一定是个变量,也可以是个表达式或者是个函数。
二:Methods
我们在OOP里面总是在说对象之间是通过消息进行交流的。在对象获得消息之后想要进行处理,必须干什么呢。调用与消息对应的Methods以响应那个消息。这里就引出了我们的Methods了。多说一句在非OOP里面,或者说是面向过程的编程里面咱们的Method就成了Function了。在Ruby里面怎么定义一个Methods呢,其实和Python看上去差不多,给段代码大家就完全明白:
def showmyname puts('Jesse Zhao') end def showyourname(aName) puts("Your name is #{aName}") end def showourname(aName,bName) puts("My name is #{aName},Your name is #{bName}") end
这段代码看完之后就能明白了Method的写法了吧,三个例子分别展示了如何写不带参数,带参数和带多个参数的Method的写法。在这里想说一下在puts还有这个def的Method Name后面的那些括号是不必要的,我加上括号是我的习惯,并且个人感觉这样代码看起来不会太混乱。
三:Number and Condition:if then
看了《a little book of ruby》里面的一个例子很不错,写的很好。给出来看看,感觉对Ruby里面的对象可以加深认识吧。
taxrate=0.175 print("Enter price:") s=gets() subtotal=s.to_f if(subtotal<0.0) then subtotal=0.0 end tax=subtotax*taxrate puts "Tax on $#{subtotal} is $#{tax},so grand total is $#{subtotal*tax}"
讲解一下:
- taxrate这个变量没有定义就直接使用,因为ruby允许在需要时创建变量,ruby可以自己感知变量的类型。
- s.to_f。因为ruby是完全OO的东西,所以从string,integer都是类型,都是方法的。这个to_f方法就是string类型的s的方法,他可以把sting转换成float类型。
- if then end这个就没有必要解释了吧,大家有些编程经验的应该都看得懂。
- string转换成float如果string为数字格式则可以直接转换成float,如果不是数字格式而是其他如"Hate world"转换成float会编程0.0。
四:后续
今天就讲到这里吧,明天开讲Class。宝宝,我依然爱你。请给我再给我一次机会。
posted on 2007-03-07 23:27 JesseZhao 阅读(3588) 评论(22) 编辑 收藏 举报