Ruby编程基础知识概括:
1. ruby is an object-oriented language
在ruby语言中,你操作的所有东西都是对象,操作的结果同样是对象。
2. ruby names
局部变量、方法参数和方法名都应该以小写字母或者下画线开头 。
实例变量必须以“@”符号开头。
如果方法名或者变量名包含多个单词,应该用下划线来隔开各个单词。
类名、模块名和常量名必须以大写字母开头。
:id 可以把符号看作字符串文本,被变成了常量,意思是“名字叫做id的东西”。
3. methods
如:
def say_goodnight(name)
result = "Good night, #{name.capitalize}"
end
puts say_goodnight('uncle')
4. classes
如:
class Greeter
def initialize(name)
@name = name
end
def name
@name
end
def name=(new_name)
@name = new_name
end
end
g = Greeter.new("Jack")
#声明
attr_accessor :name
attr_reader: greeting
attr_writer: age
5. private and protected
6. modules
模块和类有相似之处:它们都包含一组方法、常量、以及其他类和模块的定义。但与类不同的是,你无法创建模块的实例。
模块的用途有两个:
首先,它们扮演着命名空间的角色,使得方法的名字不会彼此冲突。
其次,它们是你可以在不同的类之间共享同样的功能。
7. arrays and hashes
如:
a = [1, 'cat', 3.14]
a[0]
a[2] = nil
<<方法,会把一个值附加到数组的尾端。
a = %w{ ant bee cat dog elk }
inst_section = {
:cello => 'string',
:oboe => 'woodwind'
}
inst_section[:cello]
inst_section[:no] #=> nil -> false
8. hashes and parameter lists
redirect_to :action => 'show', :id => product.id -> redirect_to({:action => 'show', :id => product.id})
9. control structures
如:
if count > 10
puts "Try again"
elsif tries == 3
puts "You lose"
else
puts "Enter a number"
end
while weight < 100 and num_pallets <= 30
...
end
puts "will" if x > 3000
10. Regular Expressions
在ruby中,创建正则表达式的方式通常是/pattern/或者%r{pattern}
如
if line =~ /P(erl|ython)/
...
end
11. blocks and iterators
如:
animals = %w( ant bee cat dog elk)
animals.each { |animal| puts animal}
3.times { prints "Ho! " } #=> Ho! Ho! Ho!
12. Exceptions
如:
begin
...
resuce Exception
...
end
13. Marshaling Objects(对象序列化)
ruby可以将对象转换成字节流,并将其存储在应用程序之外,这样的处理被称为序列化。
被保存的对象可以在以后被应用程序的另一个实例读取出来,并再造原来这个对象。
rails使用序列化功能来保存session数据
14. interactive ruby
ruby irb
rails script/console
15. ruby idioms(惯用法)
empty! empty?
a || b
a ||= b
obj = self.new
require File.dirname(__FILE__) + '/../test_helper'
15. RDoc Documentation