block 参数传入到方法中

def do_n_times(n){
  i = 1
  while( i<=n )
    yield i
  end
}

do_n_times( 3 ){ |x| puts "--->#{x}" }

# --->1
# --->2
# --->3

上面是使用关键字 yeild 来调用代码块,而下面的例子,在方法定义的时候定义了一个Proc 参数( 索引到传入的块),然后在方法里调用 call 方法,来调用Proc 块。

注意这种使用方式和之前的方式,调用方法是一样的。

def do_n_times(n , &p){
  i = 1
  while( i<=n )
    p.call(i)  # 调用 Proc.call 方法
  end
}

do_n_times( 3 ){ |x| puts "--->#{x}" } #注意这里的调用方式和之前的代码一样。

# --->1
# --->2
# --->3
时间: 2024-12-17 12:37:54

block 参数传入到方法中的相关文章

把一个函数作为参数传入到函数中

<!DOCTYPE html> <html> <head> <meta charset="utf-8"> </head> <body> <script> function f1(func){ //func函数作为参数传入f1函数 console.log('1'); //首先进入f1函数 setTimeout(function(){ console.log('2'); //继续进入setTimeout方法

CreateRemoteThread函数多参数传入使用方法

注意事项: 1.Debug版本编译的时候使用增量编译,导致每个函数都是用一个Thunk, 所以请使用Release版本. 2.目标进程非本进程时不能调用本进程内的函数或使用本进程内的变量,有时在隐式使用时可能会引起该 问题,容易引起进程崩溃.(例如WriteProcessMemory写入的函数中调用了本进程的全局变量) 3.多参数使用时请在目标进程中为函数参数分配相应的内存空间,因为CreateRemoteThread第5个参数是LPVOID型, 这意味着它只能放一个指针值,而该指针值应该指向分

Java方法中传值和引用传递的问题(转)

说明:标题其实说法是错误的.Java中只有值传递,没有引用传递. ... ... //定义了一个改变参数值的函数 public static void changeValue(int x) { x = x *2; } ... ... //调用该函数 int num = 5; System.out.println(num); changeValue(num); System.out.println(num); ... ... 调用函数changeValue()前后num的值都没有改变. 值传递的过

mybatis从dao传入多个参数到sqlmap时dao中要使用map或实例对象(如:user)作为参数传入, 否则报错找不到属性getter方法

23:37 2015-07-02 注意1. 使用mybaits的resultMap查询时, 如果想传入多个参数(比如where 1=1动态多条件查询时)sqlmap文件中对应的方法中, selectList中一定要传实例对象(如person作为obj而不能用String等等只能一个参数的类)或map封装多参数传入map作为obj注意2. sqlmap中的方法的parameterType和jdbcType可以不用写

如果给JQ的ajax方法中的success()传入参数?

当时在使用JQuery提供的Ajax技术的时候,我有个需求,就是要给它请求成功后调用的success()方法传入参数: 所以,我就直接这样子写了: <script> function getTypeList(name){ $.ajax({ url : '<c:url value="admin/type_loadTypeList.action"/>', type : 'get', contentType : "text/html;charset=utf-

Main方法中传入参数

↓ 这个时候会报错: Instantiate the class:DonutShop java.lang.ClassNotFoundException: DonutShop    at java.net.URLClassLoader$1.run(URLClassLoader.java:200)    at java.security.AccessController.doPrivileged(Native Method)    at java.net.URLClassLoader.findCla

mybais 的映射文件,需要从poviderDao.java 的一个 方法 public getProvidersFactors(参数 ) 中传入多个参数到providerDao.xml中的两种方法

方法一: 直接以对象的整体的形式去传入到xml文件中,当然这时候用过满足的条件是:你所想传入的所有的参数,应该都是包含在一个对象中的,此时可以以对象的形式去传入到xml中 如下图示例 实体类 private String id; private String companyName; private String managerName; private String phone; private String address; private String type; #ProviderDao

Spring中的AOP(五)——在Advice方法中获取目标方法的参数

摘要: 本文介绍使用Spring AOP编程中,在增强处理方法中获取目标方法的参数,定义切点表达式时使用args来快速获取目标方法的参数. 获取目标方法的信息 访问目标方法最简单的做法是定义增强处理方法时,将第一个参数定义为JoinPoint类型,当该增强处理方法被调用时,该JoinPoint参数就代表了织入增强处理的连接点.JoinPoint里包含了如下几个常用的方法: Object[] getArgs:返回目标方法的参数 Signature getSignature:返回目标方法的签名 Ob

.net中以传引用的方式 向方法中传参数

CLR(CommonLanguageRuntime)公共语言运行时,允许以传引用而非传值的方式传递参数.在C#中,这是用关键字 out 和ref来做到的. 从CLR角度来看,这两个关键字没什么区别,生成的IL代码都是一样的.但是C#编译器是将这两个关键字区别对待的,而且这个区别决定了由哪个方法负责初始化所引用的对.象.如果方法的参数用out关键字来标记,表明不指望调用者在调用方法之前初始化对象.被调用的方法不能够读取out标记的参数的值,而且在函数返回前必须给该参数写入值. 相反,使用ref标记