男人眼泪中的 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。在这个小程序里面可以讲四点:

  1. print('') 这个是把单引号里面的字符输出来。他在输出字符串之后不会换行。
  2. gets() 获取输入的string,赋给其他变量。
  3. puts('')是把引号里面的内容输出来,输出之后会换行,这个是和print的区别。
  4. #{}这个里面的东西会被输出。我说里面东西的意思是想说明里面不一定是个变量,也可以是个表达式或者是个函数。

二: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}"

讲解一下:

  1. taxrate这个变量没有定义就直接使用,因为ruby允许在需要时创建变量,ruby可以自己感知变量的类型。
  2. s.to_f。因为ruby是完全OO的东西,所以从string,integer都是类型,都是方法的。这个to_f方法就是string类型的s的方法,他可以把sting转换成float类型。
  3. if then end这个就没有必要解释了吧,大家有些编程经验的应该都看得懂。
  4. string转换成float如果string为数字格式则可以直接转换成float,如果不是数字格式而是其他如"Hate world"转换成float会编程0.0。

四:后续

今天就讲到这里吧,明天开讲Class。宝宝,我依然爱你。请给我再给我一次机会。

posted on 2007-03-07 23:27  JesseZhao  阅读(3588)  评论(22编辑  收藏  举报

导航