Questions tagged «function»

函数(也称为过程,方法,子例程或例程)是旨在执行单个特定任务的一部分代码。使用此标记可解决特别涉及创建或调用函数的问题。为了帮助实现执行任务的功能,请改用[algorithm]或特定于任务的标记。

4
为什么Perl 5的功能原型不好?
在另一个堆栈溢出问题中, Leon Timmermans断言: 我建议您不要使用原型。它们有其用途,但不适用于大多数情况,并且绝对不在此情况下使用。 为什么这可能是正确的(或相反)?我几乎总是为我的Perl函数提供原型,而且我从未见过有人对使用它们发表过不好的看法。
116 perl  function  prototype 


10
Python函数作为函数参数吗?
Python函数可以作为另一个函数的参数吗? 说: def myfunc(anotherfunc, extraArgs): # run anotherfunc and also pass the values from extraArgs to it pass 所以这基本上是两个问题: 可以吗? 如果是的话,如何在其他函数中使用该函数?我需要使用exec(),eval()还是类似的东西?从来不需要与他们搞混。 顺便说一句,extraArgs是anotherfunc参数的列表/元组。


18
了解递归函数如何工作
正如标题所解释的那样,我有一个非常基本的编程问题,但我现在还无法理解。过滤掉所有(极其聪明的)“为了理解递归,您必须首先理解递归。” 来自各种在线话题的回复我还是不太明白。 了解到,当面对不知道的知识时,我们可能会提出错误的问题或错误地提出正确的问题,我会分享我“认为”的问题,希望有相貌相似的人可以分享一些一点知识,将有助于为我打开递归灯泡! 这是函数(语法用Swift编写): func sumInts(a: Int, b: Int) -> Int { if (a > b) { return 0 } else { return a + sumInts(a: a + 1, b: b) } } 我们将使用2和5作为我们的参数: println(sumInts(a: 2, b: 5)) 显然答案是14。但是我不清楚如何实现这一价值。 这些是我的2个挂断电话: 递归调用该函数,直到满足条件为止。该条件是a> b。满足此条件后,返回0。乍一看,我希望返回值为0,这显然是不正确的。 在每次迭代中打印出'a'的值会产生一个我期望的值:2、3、4、5(此时5 + 1> b满足第一个条件:a> b),但我仍然不知道看一下如何达到14的值。 我首先想到的是,与以下类似的事情正在神奇地发生: var answer …

14
JavaScript:克隆函数
在JavaScript中克隆功能(具有或不具有其属性)的最快方法是什么? 两个选项来脑海中eval(func.toString())和function() { return func.apply(..) }。但是我担心评估和包装的性能会使堆栈变得更糟,并且如果大量应用或应用于已包装的包装,可能会降低性能。 new Function(args, body) 看起来不错,但是如果没有JS中的JS解析器,我怎么能可靠地将现有函数拆分为args和body? 提前致谢。 更新: 我的意思是能够做到 var funcB = funcA.clone(); // where clone() is my extension funcB.newField = {...}; // without affecting funcA

4
PHP函数注释
只是一个简单的问题:我已经看到一些PHP函数在顶部使用了我不知道的格式进行注释: /** * * Convert an object to an array * * @param object $object The object to convert * @return array * */ 我的IDE为我提供了诸如@param和@return之类的下拉菜单,因此必须在某个地方进行记录。我已尝试搜索google,但搜索中不会包含@符号。 评论的格式是什么?在哪里可以找到一些信息?

9
C ++中的“ int&foo()”是什么意思?
在阅读有关左值和右值的解释时,这些代码行向我伸出来: int& foo(); foo() = 42; // OK, foo() is an lvalue 我在g ++中尝试过,但是编译器说“对foo()的未定义引用”。如果我加 int foo() { return 2; } int main() { int& foo(); foo() = 42; } 它可以很好地编译,但是运行它会产生分段错误。只是线 int& foo(); 本身既可以编译又可以毫无问题地运行。 此代码是什么意思?如何为函数调用分配值,为什么它不是右值?

11
尝试在JavaScript中{}不能捕获{}吗?
我有很多函数,它们要么返回值,要么抛出错误。在主函数中,我分别调用它们,并想返回每个函数返回的值,或者如果第一个函数抛出错误,则继续执行第二个函数。 所以基本上我目前拥有的是: function testAll() { try { return func1(); } catch(e) {} try { return func2(); } catch(e) {} // If func1 throws error, try func2 try { return func3(); } catch(e) {} // If func2 throws error, try func3 } 但是实际上我只想try返回它(即,如果它没有引发错误)。我不需要catch障碍物。但是,类似的代码try {}失败,因为它缺少(未使用的)catch {}块。 我在jsFiddle上举了一个例子。 那么,有什么方法可以catch在达到相同效果的同时移除那些障碍?

9
是“ int main;” 有效的C / C ++程序?
我问是因为我的编译器似乎是这样认为的,即使我没有。 echo 'int main;' | cc -x c - -Wall echo 'int main;' | c++ -x c++ - -Wall Clang对此不发出警告或错误,并且gcc仅发出温和的警告:'main' is usually a function [-Wmain],但仅当编译为C时发出。指定a -std=似乎无关紧要。 否则,它将编译和链接正常。但是在执行时,它立即终止SIGBUS(对我来说)。 通读以下内容的(优秀)答案:main()在C和C ++中应该返回什么?以及通过语言规范的快速grep,在我看来,肯定需要一个主要功能。但是gcc -Wmain('main' 通常是一个函数)的废话(以及此处缺少错误)似乎暗示了其他方面。 但为什么?是否有一些奇怪的极端情况或“历史性”用法?有人知道会给什么吗? 我的意思是,我真的认为这在托管环境中应该是一个错误,是吗?
113 c++  c  function  main  entry-point 

9
调用Math.random()的函数是否纯净?
以下是纯函数吗? function test(min,max) { return Math.random() * (max - min) + min; } 我的理解是纯函数遵循以下条件: 它返回从参数计算得出的值 除了计算返回值外,它不做任何其他工作 如果这个定义正确,那么我的函数是纯函数吗?还是我对定义纯函数的理解不正确?

11
在Python中强制命名参数
在Python中,您可能有一个函数定义: def info(object, spacing=10, collapse=1) 可以通过以下任何一种方式调用: info(odbchelper) info(odbchelper, 12) info(odbchelper, collapse=0) info(spacing=15, object=odbchelper) 多亏了Python允许任意顺序的参数(只要它们被命名)。 我们遇到的问题是,随着一些更大的函数的增长,人们可能会在spacing和之间添加参数collapse,这意味着错误的值可能会传递给未命名的参数。此外,有时不清楚需要输入什么。我们正在寻找一种方法来强迫人们命名某些参数-不仅是编码标准,还是理想的标志或pydev插件? 因此,在上述4个示例中,由于所有参数均已命名,因此只有最后一个示例可以通过检查。 奇怪的是,我们只会为某些功能打开它,但是有关如何实现此功能的任何建议-甚至可能的话,我们将不胜感激。




By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.