更改

跳到导航 跳到搜索
删除842字节 、 2020年12月27日 (日) 23:40
第843行: 第843行:  
===包装器函数===
 
===包装器函数===
   −
A [[wrapper function]] is a function that is directly called but does not recurse itself, instead calling a separate auxiliary function which actually does the recursion.
      
'''<font color="#ff8000"> 包装器函数 wrapper function</font>'''是指被直接调用但本身不递归的函数,而是调用一个单独的辅助函数,由这个辅助函数实际上进行递归。
 
'''<font color="#ff8000"> 包装器函数 wrapper function</font>'''是指被直接调用但本身不递归的函数,而是调用一个单独的辅助函数,由这个辅助函数实际上进行递归。
   −
Wrapper functions can be used to validate parameters (so the recursive function can skip these), perform initialization (allocate memory, initialize variables), particularly for auxiliary variables such as "level of recursion" or partial computations for [[memoization]], and handle exceptions and errors. In languages that support [[nested function]]s, the auxiliary function can be nested inside the wrapper function and use a shared scope. In the absence of nested functions, auxiliary functions are instead a separate function, if possible private (as they are not called directly), and information is shared with the wrapper function by using [[pass-by-reference]].
      
包装器函数可用于验证参数(这样递归函数就可以跳过这些参数)、执行初始化(分配内存、初始化变量),特别是对于辅助变量,如“递归级别”或记忆的部分计算,以及处理异常和错误。在支持嵌套函数的语言中,辅助函数可以嵌套在包装器函数内部,并使用共享的作用域。在没有嵌套函数的情况下,辅助函数是一个独立的函数,如果可能的话,辅助函数会被定义为私有的(因为它们没有被直接调用) ,通过使用引用传递的方式与包装器函数共享信息。
 
包装器函数可用于验证参数(这样递归函数就可以跳过这些参数)、执行初始化(分配内存、初始化变量),特别是对于辅助变量,如“递归级别”或记忆的部分计算,以及处理异常和错误。在支持嵌套函数的语言中,辅助函数可以嵌套在包装器函数内部,并使用共享的作用域。在没有嵌套函数的情况下,辅助函数是一个独立的函数,如果可能的话,辅助函数会被定义为私有的(因为它们没有被直接调用) ,通过使用引用传递的方式与包装器函数共享信息。

导航菜单