标签: anonymous-function

JavaScript匿名函数的参数

for (var i = 0; i < somearray.length; i++)
{
    myclass.foo({'arg1':somearray[i][0]}, function()
    {
        console.log(somearray[i][0]);
    });
}
Run Code Online (Sandbox Code Playgroud)

如何将somearray或其中一个索引传递给匿名函数?somearray已经在全球范围内,但我仍然得到一些[i]未定义

javascript closures loops anonymous-function

14
推荐指数
2
解决办法
7001
查看次数

什么是最优雅的lambda表达式(动作)什么都不做?

所以我目前有以下代码:

    BCLThread bclThread = new BCLThread(() => Thread.Sleep(0));
Run Code Online (Sandbox Code Playgroud)

因为我想不出另一种说法,我实际上不希望那种方法做某事.有没有其他更优雅的方式来实现这一目标?

谢谢

c# lambda anonymous-function

14
推荐指数
2
解决办法
3658
查看次数

如何在方法中定义的匿名函数内使用`self ::`访问类常量?

我想self在匿名函数中使用来访问类常量.

class My_Class {    
    const  CLASS_CONSTANT = 'test value';
    private function my_function(){     
        $lambda_function = function(){
            echo self::CLASS_CONSTANT;
        };
        $lambda_function();
    }
}
Run Code Online (Sandbox Code Playgroud)

当我尝试这个时,我收到错误:

致命错误:当没有类活动在...时,无法访问self ::

是否可以将父类传递到此匿名函数的范围内?将一个use语句的工作?

php anonymous-function

14
推荐指数
2
解决办法
1万
查看次数

C中的假匿名函数

这个SO线程中,Brian Postow 提出了一个涉及虚假匿名函数的解决方案:

制作一个comp(L)函数,返回长度为L的数组的comp版本......这样L成为参数,而不是全局

我该如何实现这样的功能?

c anonymous-function

13
推荐指数
1
解决办法
7201
查看次数

PHP中的匿名函数性能

我开始在php中使用函数式编程范例,并且想知道性能影响是什么.一些谷歌搜索似乎只是说有一些.具体来说,我想知道:

  • 是否真的会影响性能还是城市传奇?
  • 什么是性能影响(希望有人做过基准测试)?
  • 造成这种影响的原因(如果存在)?
  • 是固定成本还是每次执行?

你们所拥有的任何资源都将不胜感激:)

提前致谢

php functional-programming anonymous-function php-5.3

13
推荐指数
1
解决办法
3955
查看次数

在Python中动态分配函数实现

我想动态分配一个函数实现.

让我们从以下开始:

class Doer(object):

    def __init__(self):
        self.name = "Bob"

    def doSomething(self):
        print "%s got it done" % self.name

def doItBetter(self):
    print "Done better"
Run Code Online (Sandbox Code Playgroud)

在其他语言中,我们将使doItBetter成为匿名函数并将其分配给对象.但是不支持Python中的匿名函数.相反,我们将尝试创建一个可调用的类实例,并将其分配给该类:

class Doer(object):

    def __init__(self):
        self.name = "Bob"

class DoItBetter(object):

    def __call__(self):
        print "%s got it done better" % self.name

Doer.doSomething = DoItBetter()
doer = Doer()
doer.doSomething()
Run Code Online (Sandbox Code Playgroud)

这给了我这个:

回溯(最近一次调用最后一次):第13行,在doer.doSomething()第9行,在调用 打印"%s让它做得更好"%self.name AttributeError:'DoItBetter'对象没有属性'name'

最后,我尝试将callable作为属性分配给对象实例并调用它:

class Doer(object):

    def __init__(self):
        self.name = "Bob"

class DoItBetter(object):

    def __call__(self):
        print "%s got it done better" % self.name


doer = Doer()
doer.doSomething = …
Run Code Online (Sandbox Code Playgroud)

python anonymous-methods callable anonymous-function

13
推荐指数
2
解决办法
8417
查看次数

Clojure中匿名函数的fn和#语法有区别吗?

我是clojure的新手,我见过匿名函数,如:

(fn [x] (* x x))
Run Code Online (Sandbox Code Playgroud)

还喜欢:

#(* % %)
Run Code Online (Sandbox Code Playgroud)

显然,第二个更简洁.有什么相关的区别吗?每个匿名函数都可以用任何一种风格表示吗?还有一个惯用吗?

与此问题相关,我无法确定如何转换(fn [x] [x x])为后一种语法.我希望有一个指向文档的指针来澄清这种情况.

syntax lambda clojure anonymous-function

13
推荐指数
2
解决办法
927
查看次数

C#Lambda函数:返回数据

我是否遗漏了某些内容,或者无法从lambda函数返回值,例如..

Object test = () => { return new Object(); };

要么

string test = () => { return "hello"; };

我得到一个构建错误"无法将lambda表达式转换为'string'类型,因为它不是委托类型".

这就像这个语法分配lambda而不是lambda的结果,我没想到.我可以通过将函数分配给Func并按名称调用它来实现所需的功能,但这是唯一的方法吗?

请不要"为什么你需要这样做?" 关于我的例子.

提前致谢!

.net c# lambda delegates anonymous-function

13
推荐指数
1
解决办法
3万
查看次数

如何在Rust中将匿名函数作为参数传递?

Rust过去一周我一直在玩弄.我似乎无法弄清楚如何在调用方法时传递一个被定义为参数的函数,并且没有遇到任何显示它们以这种方式使用的文档.

在调用函数时,是否可以在参数列表中定义函数Rust

这是我到目前为止所尝试的......

fn main() {

    // This works
    thing_to_do(able_to_pass);

    // Does not work
    thing_to_do(fn() {
        println!("found fn in indent position");
    });

    // Not the same type
    thing_to_do(|| {
        println!("mismatched types: expected `fn()` but found `||`")
    });
}

fn thing_to_do(execute: fn()) {
    execute();
}

fn able_to_pass() {
    println!("Hey, I worked!");
}
Run Code Online (Sandbox Code Playgroud)

function-pointers anonymous-function rust

13
推荐指数
1
解决办法
5080
查看次数

递归匿名函数Matlab

我知道这不是匿名函数的用途,但就像我试图通过匿名函数创建递归函数一样.递归函数的原型显然是阶乘函数.问题是,这是很难做出区分的情况下的匿名函数.到目前为止我设法做的是:

f=@(cn,n,f)eval('if n>1; f(cn*n,n-1,f);else;ans=cn;end');
f=@(n)f(1,n,f);
Run Code Online (Sandbox Code Playgroud)

或者:

f=@(cn,n,f)eval('if n>1; f(cn*n,n-1,f);else;disp(cn);end');
f=@(n)f(1,n,f);
Run Code Online (Sandbox Code Playgroud)

不太令人满意的是,直接分配时仍然无法使用此功能,a=f(3)仍会产生错误,因为eval没有得到值.

所以我的问题是,您是否可以通过匿名函数实际执行递归函数,例如以允许例如a=f(3)仅依赖于本机matlab函数(或者您可以在命令行中创建的函数,如我在示例中所做的那样)计算阶乘的方式?

PS:我知道这没有任何实际用途,这只是对你可以弯曲和滥用Matlab语法的挑战.

recursion matlab anonymous-function

13
推荐指数
1
解决办法
950
查看次数