ruby

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

 

 

 

 

 

 

 

 

 

 

 

 

你可能感兴趣的:(编程,正则表达式,ant,Ruby,Rails)