javascript

java

python

c#

android

c++

node.js

php

reactjs

jquery

html

css

ios

.net

git

ruby-on-rails

sql

c

string

ruby

PHP-为什么使用匿名函数?

可能重复:
您如何在PHP中使用匿名函数?

为什么要使用匿名函数? 我的意思是,使用它的真正意义是什么?我只是真的不明白这一点。 我的意思是,您使用函数来使代码更清晰或更多次使用。 但是匿名函数只是不执行第一个也不执行第二个。我用谷歌搜索,但找不到有人问同样的问题。

trans by 2020-06-30T04:34:33Z

c-使用GCC语句表达式的匿名函数

这个问题不是很具体; 这确实是为了我自己的C增强,我希望其他人也能找到它的用处。

免责声明:我知道许多人会冲动地回答“如果您要使用FP,则只需使用功能语言”。 我在嵌入式环境中工作,该环境需要链接到许多其他C库,并且没有足够的空间容纳更多大型共享库,并且不支持许多语言运行时。 而且,动态内存分配是不可能的。 我也很好奇。

我们中的许多人都看到过这个漂亮的C宏用于lambda表达式:

#define lambda(return_type, function_body) \
({ \
      return_type __fn__ function_body \
          __fn__; \
})

用法示例是:

int (*max)(int, int) = lambda (int, (int x, int y) { return x > y ? x : y; });
max(4, 5); // Example

使用__fn__,lambda扩展为:

int (*max)(int, int) = ({ int __fn__ (int x, int y) { return x > y ? x : y; } __fn__; });

所以,这些是我的问题:

  1. 行int(* X)到底是什么? 宣布? 当然是int * X; 是指向整数的指针,但是这两者有何不同?

  2. 看一下扩展宏,最后的__fn__在做什么? 如果我编写测试函数void test() { printf("hello"); } test;-立即抛出错误。 我不了解该语法。

  3. 这对于调试意味着什么? (我打算以此和gdb进行实验,但是其他人的经验或意见会很棒)。 这会搞砸静态分析仪吗?

trans by 2020-02-13T11:44:33Z

可以在匿名函数中设置断点吗?

我很快想确定是否/何时触发一组事件。 因此,我迅速为他们分配了空的lambda。

_session.TopologyStarted += () => { };

当事件触发时在代码中进行跟踪时,调试器将进入匿名函数,以调试其执行。 但是,在此代码行上设置断点时,将为事件分配匿名函数时会设置一个断点。

有没有办法在匿名函数中设置断点?

trans by 2020-02-05T18:49:46Z

Javascript匿名功能

这个问题已经在这里有了答案:

  • 功能之前,感叹号有什么作用?                                     10个答案

我从Twitter上阅读JS资料-当我遇到一种奇怪的调用匿名函数的方式时,我正在改进自己的JS知识库:

!function( $ ) {
    ...
}( window.jQuery );

...这有效! :)

对所有人来说,这很明显:

function ( $ ) { ... } ( window.jQuery )

不起作用(语法错误),而这是正确的:

(function ( $ ) { .... })( window.jQuery )

谁能解释这个魔术(为什么!function起作用)?

trans by 2020-01-05T13:12:08Z

选择要基于正则表达式调用的Python函数

是否可以在不首先使用def为其命名的情况下将函数放入数据结构中?

# This is the behaviour I want. Prints "hi".
def myprint(msg):
    print msg
f_list = [ myprint ]
f_list[0]('hi')
# The word "myprint" is never used again. Why litter the namespace with it?

lambda函数的主体受到严格限制,因此我不能使用它们。

编辑:作为参考,这更像是我遇到问题的真实代码。

def handle_message( msg ):
    print msg
def handle_warning( msg ):
    global num_warnings, num_fatals
    num_warnings += 1
    if ( is_fatal( msg ) ):
        num_fatals += 1
handlers = (
    ( re.compile( '^<\w+> (.*)' ), handle_message ),
    ( re.compile( '^\*{3} (.*)' ), handle_warning ),
)
# There are really 10 or so handlers, of similar length.
# The regexps are uncomfortably separated from the handler bodies,
# and the code is unnecessarily long.

for line in open( "log" ):
    for ( regex, handler ) in handlers:
        m = regex.search( line )
        if ( m ): handler( m.group(1) )
trans by 2019-12-29T18:40:22Z

javascript-如何在CoffeeScript中将两个匿名函数作为参数传递?

我想传递两个匿名函数作为jQuery悬停的参数,如下所示:

$('element').hover(
  function() {
    // do stuff on mouseover
  },
  function() {
    // do stuff on mouseout
  }
);

只需一个就很容易– 26710980855432488488 –但是CoffeeScript中适合两个的正确语法是什么? 我尝试了...hover ->...hover( ->...等,但是上面的结构没有任何帮助。

trans by 2019-12-24T00:32:42Z

循环中的Python Lambda

考虑以下代码片段:

# directorys == {'login': <object at ...>, 'home': <object at ...>}
for d in directorys:
    self.command["cd " + d] = (lambda : self.root.change_directory(d))

我希望创建一个具有以下两个功能的字典:

# Expected :
self.command == {
    "cd login": lambda: self.root.change_directory("login"),
    "cd home": lambda: self.root.change_directory("home")
}

但看起来生成的两个lambda函数完全相同:

# Result :
self.command == {
    "cd login": lambda: self.root.change_directory("login"),
    "cd home": lambda: self.root.change_directory("login")   # <- Why login ?
}

我真的不明白为什么。 你有什么建议吗 ?

trans by 2019-11-14T03:31:38Z

Javascript-为什么箭头函数没有参数数组?

这个问题在这里已有答案:

  • 有关ES6 Arrow功能中“ arguments”的官方信息?                                     2个答案
function foo(x) {
   console.log(arguments)
} //foo(1) prints [1]

var bar = x => console.log(arguments) 

以相同的方式调用时,会出现以下错误:

Uncaught ReferenceError: arguments is not defined
trans by 2019-11-03T23:09:41Z

标记匿名函数的Javascript“冒号”?

此代码指的是什么?

queryString: function() {

//some code

}

我在WebConsole(Firefox)中对其进行了测试,但是无法执行,因此我认为它不等同于function queryString() {}

那到底是什么呢?

trans by 2019-10-25T22:06:22Z

clojure - 匿名函数速记

使用短符号#(..)有一些我不了解匿名函数的东西

以下作品:

REPL>  ((fn [s] s) "Eh")
"Eh"

但这不是:

REPL>  (#(%) "Eh")

这有效:

REPL> (#(str %) "Eh")
"Eh"

我不明白的是为什么(#(%)“Eh”)不起作用,同时我不需要使用str in((fn [s] s)“Eh”)

它们都是匿名函数,它们都带有一个参数。 为什么简写符号需要一个函数而另一个符号不需要?

trans by 2019-09-16T02:54:54Z

javascript - 如何使用参数传递对函数的引用?

可能重复:
如何在JavaScript函数调用中预先设置参数? (部分功能应用)

我需要能够使用给定的参数集传递对函数的引用。

以下是传递不带参数的引用的示例:

var f = function () {
    //Some logic here...
};

var fr = f; //Here I am passing a reference to function 'f', without parameters
fr(); //the 'f' function is invoked, without parameters

现在我需要做的是传递相同的fr函数,但这次我需要将参数传递给引用。 现在,我可以使用匿名函数执行它,并使用新创建的函数内的参数调用fr()函数,如下所示:

var f = function () {
        //Some logic here...
    };

var fr = function (pars) {
    f(pars);
}; //Here I am creating an anonymous function, and invoking f inside it

fr({p : 'a parameter'}); //Invoking the fr function, that will later invoke the f function with parameters

但我的问题是,有没有办法直接引用fr函数参数为fr(),但没有将其封闭在匿名函数中?

如果没有参数(fr()),我需要分配给fr以使其可调用,以便在调用fr时执行f(1,2,3)?

[UPDATE]我跟着Jason Bunting回答这里关于Partial Function和他发布的JavaScript函数的答案正是我想要的。 这是解决方案:

function partial(func /*, 0..n args */) {
  var args = Array.prototype.slice.call(arguments).splice(1);
  return function() {
    var allArguments = args.concat(Array.prototype.slice.call(arguments));
    return func.apply(this, allArguments);
  };
}
trans by 2019-09-11T23:35:56Z

在JSON结果中定义函数是否有效?

网站的JSON响应的一部分有这个(...为上下文添加):

{..., now:function(){return(new Date).getTime()}, ...}

向JSON添加匿名函数是否有效? 我希望每次你访问“时间”返回一个不同的值。

trans by 2019-08-08T02:08:24Z

syntax - 自动执行匿名JavaScript函数的括号的位置?

我最近将当前版本的json2.js与我在项目中的版本进行了比较,并注意到函数表达式的创建和自我执行方式有所不同。

用于在括号中包装匿名函数然后执行它的代码,

(function () {
  // code here
})();

但现在它将自动执行的函数包含在括号中。

(function () {
  // code here
}());

CMS在解释JavaScript的封装匿名函数语法的接受答案中有一条评论,“两者都有:(function(){})();(function(){}());有效”。

我想知道有什么区别? 前者是否通过绕过全局匿名函数来占用内存? 括号应该放在哪里?

trans by 2019-07-22T18:49:16Z

递归 - javascript:递归匿名函数?

让我们说我有一个基本的递归函数:

function recur(data) {
    data = data+1;
    var nothing = function() {
        recur(data);
    }
    nothing();
}

如果我有匿名功能,我怎么能这样做...

(function(data){
    data = data+1;
    var nothing = function() {
        //Something here that calls the function?
    }
    nothing();
})();

我想要一种方法来调用调用这个函数的函数...我已经看过某个地方的脚本(我不记得在哪里)可以告诉你一个叫做函数的名字,但是我 现在不能回忆起任何这些信息。

trans by 2019-07-13T03:03:59Z

JavaScript中的匿名函数的removeEventListener

我有一个包含方法的对象。 这些方法被放入匿名函数内的对象中。 它看起来像这样:

var t = {};
window.document.addEventListener("keydown", function(e) {
    t.scroll = function(x, y) {
        window.scrollBy(x, y);
    };
    t.scrollTo = function(x, y) {
        window.scrollTo(x, y);
    };
});  

(还有更多代码,但这足以显示问题)

现在我想在某些情况下停止事件监听器。 因此我试图做一个removeEventListener,但我无法弄清楚如何做到这一点。 我在其他问题中已经读过,无法在匿名函数上调用removeEventListener,但在这种情况下是否也是如此?

我在匿名函数中创建了一个方法,因此我认为这是可能的。 看起来像这样:

t.disable = function() {
    window.document.removeEventListener("keydown", this, false);
}

为什么我不能这样做?

还有其他(好的)方法吗?

奖金信息; 这只需要在Safari中工作,因此缺少即支持。

trans by 2019-06-19T04:09:25Z

闭包 - 在函数中使用关键字 - PHP

可能重复:
在Php 5.3.0中,功能“使用”标识符是什么? 一个理智的程序员应该使用它吗?

我一直在研究PHP中的闭包,这引起了我的注意:

public function getTotal($tax)
    {
        $total = 0.00;

        $callback =
            function ($quantity, $product) use ($tax, &$total)
            {
                $pricePerItem = constant(__CLASS__ . "::PRICE_" .
                    strtoupper($product));
                $total += ($pricePerItem * $quantity) * ($tax + 1.0);
            };

        array_walk($this->products, $callback);
        return round($total, 2);
    }

有人请在这段代码中给我一个关于use用法的解释。

function ($quantity, $product) use ($tax, &$total)

当我在PHP中搜索use时,它找到use关键字,它在命名空间中使用但在这里它看起来不同。

谢谢。

trans by 2019-06-14T06:26:13Z

php - 如何调用一个类变量的闭包?

class MyClass {
  var $lambda;
  function __construct() {
    $this->lambda = function() {echo 'hello world';};
    // no errors here, so I assume that this is legal
  }
}

$myInstance = new MyClass();
$myInstance->lambda();
//Fatal error: Call to undefined method MyClass::lambda()

那么到达类变量的正确语法是什么?

trans by 2019-06-11T10:34:37Z

php is_function()确定变量是否是函数

我非常兴奋地阅读php中的匿名函数,它允许您声明一个比使用create_function更容易的函数变量。 现在我想知道我是否有一个传递变量的函数,我如何检查它以确定它是否是一个函数? 还没有is_function()函数,当我做一个函数的变量var_dump时::

$func = function(){
    echo 'asdf';
};
var_dump($func);

我明白了:

object(Closure)#8 (0) { } 

有关如何检查这是否是一个功能的任何想法?

trans by 2019-04-25T12:05:15Z

javascript - 为什么在使用strict时匿名函数中的“this”是未定义的?

在严格模式下使用javascript时,为什么这个匿名函数未定义? 我理解为什么这可能有意义,但我找不到任何具体的答案。

例:

(function () {
    "use strict";

    this.foo = "bar"; // *this* is undefined, why?
}());

小提琴测试:[http://jsfiddle.net/Pyr5g/1/]检查记录器(firebug)。

trans by 2019-04-21T02:14:54Z

javascript - 为什么使用命名函数表达式?

我们有两种不同的方式在JavaScript中进行函数表达式:

命名函数表达式(NFE):

var boo = function boo () {
  alert(1);
};

匿名函数表达式:

var boo = function () {
  alert(1);
};

并且可以使用boo();调用它们。我真的不明白为什么/何时应该使用匿名函数以及何时应该使用命名函数表达式。 他们之间有什么区别?

trans by 2019-04-13T18:43:38Z

1 2 下一页 共2页