you never doubt youself,I belive!

Ruby学习笔记 一

上一篇 / 下一篇  2010-12-06 09:04:03 / 个人分类:Ruby

·定义方法
def **_**(parameter)
  name= "id is"+parameter
  return name
end

·变量
局部变量、方法参数和方法名称 以消协字母或下划线开始
类名称、模块名称和常量 以一个大写字母开始
全局变量 $
实例变量 @
类变量   @@

·控制语句
if 条件
  puts "***"
elsif 条件
  puts "***"
else
  puts "***"
end

while 条件
  puts "***"
end

·注释#
·block理解:类似与回调函数


def call_block
  puts "Start of method"
  yield#回调函数的关键字
  yield
  puts "End of method"
end

call_block do  #执行多个动作,用do-end
  puts("In the block")
  puts("Out of block")
end

Ruby中方法和块的关系就是一对协同例程,互相转换程序的控制执行权,当方法中遇到yield语句,就转到块里执行,块执行完毕后,将返回到方法体中,继续执行方法yield语句后面的代码。yield可以带参数到块中,块也是有返回值,返回到方法体中。

·Closure/Proc/Block
lambda
在给出的块中生成过程对象(Proc的实例)并返回它(等同于Proc.new)。

若没有给出块的话,将返回主调(caller)方法所指的块。若主调方法没有块时,将引发ArgumentError异常。

·call
def test_closure_or_not(closure_or_not)  
  puts  
  puts "before calling closure_or_not" 
  result = closure_or_not.call #方法名.call
  puts "after calling closure_or_not" 
  puts "result from closure_or_not: #{result}" 
  "test_closure_or_not result" 
end  

puts "w/o return:" + test_closure_or_not(lambda{"from lambda"})  #使用内部函数lambda


TAG:

 

评分:0

我来说两句

Open Toolbar