本来打算翻译这本书的,最后还是写了一下摘要。不知道这是原创还是盗版。如果有侵权之类的问题在的话,麻烦告之。
使用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有垃圾回收机制。
分享到:
相关推荐
The Book Of Ruby The Book Of Ruby is a free in-depth guide to Ruby programming. It is written by Huw Collingbourne and distributed by SapphireSteel Software - developers of the Ruby In Steel IDE ...
通过小型独立的示例程序,对Ruby编程进行简单,分步的介绍。
全面的Ruby语言免费教程。
经典的ruby教程,pdf,带目录,高清扫描
前言11导言:思维胜于数据 12现实的蓝图 18第一章 因果关系之梯 26因果关系的三个层级 28迷你图灵测试 36论概率与因果关系 44第二章 从海盗到豚鼠:
THe book of Xen. 第七章。
这是一本关于 Fragment Shaders(片段着色器)的入门指南,它将一步一步地带你领略其中的纷繁与抽象, 作者Patricio Gonzalez Vivo和Jen Lowe
A pioneer of artificial intelligence shows how the study of causality ... And just as Pearl's discoveries have enabled machines to think better, The Book of Why explains how we can think better.
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 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 CSS3
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 ...
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 F#: Breaking Free with Managed Functional Programming Paperback: 312 pages Publisher: No Starch Press; 1 edition (March 25, 2014) Language: English ISBN-10: 1593275528 ISBN-13: 978-...
the book of shen(神之书,第二版)shen语言 shen lanuage
《The Little Book of Deep Learning》本书共140页,作者François Fleuret是瑞士日内瓦大学计算机科学教授,Idiap研究所外部研究员,Neural Concept SA公司联合创始人。 历史上,深度学习属于统计机器学习这个更大...
The little book of Thermofluids
the latest version of ruby program
Qt4 book