`
Inmethetiger
  • 浏览: 112050 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

the book of ruby 第一章

阅读更多

    http://inmethetiger.iteye.com/blog/1715095

    本来打算翻译这本书的,最后还是写了一下摘要。不知道这是原创还是盗版。如果有侵权之类的问题在的话,麻烦告之。

使用ruby非常简单,比如所有语言的第一个程序Hello world。只需在控制台输入

HelloWorld.rb

 

#在控制台打印Helo ruby
 puts "Hello Ruby"

 这样控制台就能输出Hello Ruby。没有类,没有头,甚至没有main函数。

 

如果需要在控制台输入,也可以使用下面的代码:

 

  print 'Enter you name:'
  name = gets
  puts "Hello #{name}"

 其中,print是打印。gets也可以写成gets()。表示接收控制台输入。puts "Hello #{name}"。打印控制台输入的数字。

不过需要指出,puts "Hello #{name}" 不能使用单引号。否则会当成普通字符串输出。

    ruby是大小写敏感的。

 

1:Number

 

subtotal = 100.00
taxrate = 0.175 # one zero only before decimal point
tax = subtotal * taxrate
puts "Tax on $#{subtotal} is $#{tax}, so grand total is $#{subtotal+tax}"

 当然,如果taxrate是字符串(不是number),所以可以使用 to_f函数。如果不能转换,则默认为0.0

 

2:局部变量和全局变量

局部变量 :变量名小写。只在特定过程或函数中可以访问的变量是相对与全局变量而言的

全局变量 :以$开头的变量。全局变量也称为外部变量,作用域从变量定义处开始,到程序结束

 

 

#flienmae variables.rb
#author lyy
#date 2012-11-03
#version 0.1
class Variables
  localvar = "hello"
  $globalvar="goodbye"

  def amethod
    localvar = 10
    puts localvar # =>10
    puts $globalvar # =>goodbye
  end

  def anotherMethod
    localvar = 500
    $globalvar="bonjour"
    puts localvar # =>500
    puts $globalvar # =>bonjour
  end

  result = Variables.new
  result.amethod
  result.anotherMethod

  puts localvar # =>hello
  puts $globalvar # =>bonjour

end

 其中 localvar是局部变量。$globalvar是全局变量。可参看注释

 

3:类和对象

定义和一般语言相同。下面我们定义一个对象

 

#flienmae dog.rb
#author lyy
#date 2012-11-03
#version 0.1
class Dog
  def set_name(aName)
    @myname = aName
  end

  def get_name
    return @myname
  end

  def talk
    return "woof!"
  end

  mydog = Dog.new
  mydog.set_name "Fido"
  puts mydog.get_name
  puts mydog.talk

  puts self # =>Dog
  puts self.class # =>Class
end

 其中,以@开头的变量是实例变量。相当于属性。

 

构造和初始化

查看下面代码:

 

#flienmae dog.rb
#author lyy
#date 2012-11-03
#version 0.1

#定义一个类
class Thing
  def set_name(aName)
    @name = aName
  end

  def get_name
    return @name
  end
end

#使用new实例化一个对象,类似java的调用默认为空的构造函数
thing1 = Thing.new
#设置名称
thing1.set_name("A lovely Thing")
#显示名称
puts thing1.get_name # =>    A lovely Thing
#定义一个类
class Treasure
  #初始化
  def initialize(aName, aDescription)
    @name = aName
    @description = aDescription
  end


end

#使用new实例化一个对象,类似java的调用带有字段名的构造函数
t1 = Treasure.new("Sword", "an Elvish weapon forged of gold")
t2 = Treasure.new("Ring", "a magic ring of great power")
puts t1.to_s # =>    #<Treasure:0xc42468>
puts t2.to_s # =>    #<Treasure:0xc42390>
# inspect方法 lets you look inside an object
puts "Inspecting 1st treasure: #{t1.inspect}" #<Treasure:0xc42468 @name="Sword", @description="an Elvish weapon forged of gold">

 说一下inspect方法,他是object对象的一个方法,返回一个易读的字符串,类似与java的定义对象后的new Dog().toString()。可以通过覆盖ruby的 to_s方法,返回可以让人理解的字符串或者其他

 

#覆蓋默認的to_s方法
   def to_s
    return "name: "+ @name + "description:" + @description
   end
 

ruby有垃圾回收机制。

 

 

0
0
分享到:
评论

相关推荐

    Ruby 教程 The Book of Ruby

    《The Book of Ruby》作为一本经典的Ruby教程,为读者提供了一个系统的学习路径,从基础知识到高级应用,再到实战案例,都做了详尽的介绍。对于想要学习Ruby或进一步提升Ruby技能的开发者来说,这是一本不可多得的...

    红宝石之书:冒险的动手指南The Book Of Ruby: A Hands-On Guide for the Adventurous

    《红宝石之书:冒险的动手指南》作为一本详尽且免费的Ruby语言教程,为初学者和进阶用户提供了全面的学习资源。本书不仅涵盖了Ruby编程的基础知识,还深入探讨了高级主题,使得读者能够在实践过程中掌握Ruby的核心...

    红宝石小书The Little Book of Ruby

    通过小型独立的示例程序,对Ruby编程进行简单,分步的介绍。

    基于JavaScript的Ruby编程高级教程《The Book Of Ruby》源码

    该项目是基于JavaScript的《The Book Of Ruby》高级教程源码,包含102个文件,其中包括26个HTML页面文件、25个Markdown文档、18个JavaScript源文件、9个PNG图片文件、8个CSS样式表文件、6个Source Map文件、5个JSON...

    The book of Why中文版1

    《The Book of Why 中文版1》是一本深入探讨因果关系科学的著作,作者通过丰富的实例和理论,引领读者理解并掌握如何从数据中提取出真正的因果信息。书中的核心概念是“因果关系之梯”,它揭示了因果推理的三个不同...

    The Book Of Shaders

    《The Book Of Shaders》是一本面向初学者的片段着色器入门指南,由Patricio Gonzalez Vivo和Jen Lowe共同撰写。片段着色器(Fragment Shader)是一种运行在图形处理单元(GPU)上的小程序,它在渲染管线的片段处理...

    The book of Xen 第七章

    THe book of Xen. 第七章。

    the-book-of-ruby-正则表达式

    The Book Of Ruby Ruby 正则表达式 正则表达式 正则表达式 正则表达式 正则表达式

    The Book of CSS3

    Luckily, The Book of CSS3 distills the heady technical language of the CSS3 specification into plain English, so you can get started on your next project right away. With real-world examples and a ...

    The.Book.of.Ruby.2008

    《The Book of Ruby》是一本全面介绍Ruby语言的书籍,由Huw Collingbourne编写,首次出版于2008年。该书深入浅出地介绍了Ruby的核心概念、语法特点以及实用技巧,旨在帮助读者避开常见的陷阱,顺利掌握这门语言。 #...

    the proof of the book(此版本不好,有重传的版本)

    Proofs from THE BOOK is a book of mathematical proofs by Martin Aigner and Günter M. Ziegler. The book is dedicated to the mathematician Paul Erdős, who often referred to "The Book" in which God ...

    The Little Book of Semaphores

    The Little Book of Semaphores is a textbook that introduces the principles of synchronization for concurrent programming. In most computer science curricula, synchronization is a module in an ...

    The Book of PF(NoStarch,3ed,2014)

    This 2nd edition of The Book of PF has been completely updated and revised. Based on Peter N.M. Hansteen's popular PF website and conference tutorials, this no-nonsense guide covers NAT and ...

    No.Starch.The.Book.of.Ruby

    《The Book of Ruby》是一本由Huw Collingbourne编写的书籍,旨在为读者提供一个深入浅出的学习Ruby编程语言的指南。本书不仅适合初学者,也适用于有一定编程经验但希望进一步掌握Ruby语言特性的开发者。Ruby是一种...

    The Book of PF, Second Edition.pdf

    The book is a direct descendant of a moderately popular PF tutorial. The tutorial is also the source of the following admonition, and you may be exposed to this live if you attend one of my tutorial...

    英文原版-The Book of PF 2nd Edition

    With a little effort and this book, you’ll gain the insight needed to unlock PF’s full potential.This 2nd edition of The Book of PF has been completely updated and revised. Based on Peter N.M. ...

Global site tag (gtag.js) - Google Analytics