标签: anonymous-function

如何提供命名函数来映射没有lambdas

我想Future通过使用较少的lambda 来使我的用法更具建设性.目前我正在使用map和lambdas来访问期货的结果.例如:

val rateQuote = future {
  connection.getCurrentValue(USD)
}
val purchase = rateQuote map { quote =>  
  if (isProfitable(quote)) connection.buy(amount, quote)
  else throw new Exception("not profitable")
}
purchase onSuccess {
  case _ => println("Purchased " + amount + " USD")
}
Run Code Online (Sandbox Code Playgroud)

map我不想为每个提供lambda(匿名函数),而是提供一个命名函数/方法.我该怎么办?例如:

val rateQuote = future {
  connection.getCurrentValue(USD)
}
def namedFunction(arg: Arg) = 
  if (isProfitable(quote)) connection.buy(amount, quote)
  else throw new Exception("not profitable")

val purchase = rateQuote map { quote => namedFunction }
Run Code Online (Sandbox Code Playgroud)

甚至更好

val purchase = rateQuote …
Run Code Online (Sandbox Code Playgroud)

lambda scala future anonymous-function

0
推荐指数
1
解决办法
104
查看次数

在 JavaScript 中分配变量名的匿名函数

有人能解释我出去,如果下面的代码片段代表匿名函数或

var alpha = (function(){ 

    /*
        private space
    */

    return{
        //Some Code Here ...

    }
})();
Run Code Online (Sandbox Code Playgroud)

这是匿名函数吗?这对我来说看起来像是匿名函数的结构,但我读到匿名函数是一个没有名字的函数。在这里,我认为 alpha(variable) 是分配给函数的名称,因此与概念相矛盾。

我知道它是否会是:

(function(){ 

    return{
        //Some Code Here ...

    }

})();
Run Code Online (Sandbox Code Playgroud)

那么这将是Anonymous Function (self invoking) 或IIFE

此外,以下是一个简单的函数,但不是匿名函数,因为 beta 被分配给该函数(如我上面的示例)。所以,如果这不是匿名函数(因为 beta 指向函数并代表它),那么我之前的函数(alpha 指向函数)怎么可能是匿名的?此外,自调用是额外的部分。我相信,仅仅因为一个函数是自调用的并不能使它成为匿名的

var beta = function(){
    //Some code 
}
Run Code Online (Sandbox Code Playgroud)

有人可以澄清我吗?

javascript function anonymous-function iife

0
推荐指数
1
解决办法
604
查看次数

从 Java 中的 lambda 表达式引用变量

为什么 Java 允许这样做,

class Test {
    boolean a;
    public void test() {
        ...
        object.method(e -> a = true);
    }
}
Run Code Online (Sandbox Code Playgroud)

但不是这个,

class Test {
    public void test() {
        boolean a;
        ...
        object.method(e -> a = true);
    }
}
Run Code Online (Sandbox Code Playgroud)

对于第二个示例,它抛出: local variables referenced from a lambda expression must be final or effectively final

第二个例子的唯一区别是变量是在方法内部而不是类本身声明的。我是 Java 编程的初学者,我是否遗漏了一些明显的东西?

java final anonymous-function

0
推荐指数
1
解决办法
118
查看次数

在带有通配符的匿名函数中使用方括号

我目前正在学习 Scala 并且正在使用带有_通配符的匿名函数。这对我来说是有道理的:

// Creates function operation(a, b, c) => a + (b / c)
var operation = (_:Double) + (_:Double) / (_:Double)
Run Code Online (Sandbox Code Playgroud)

我不明白的是如何operation改为 return (a + b) / c。这些都不起作用:

// Attempting to create function operation(a, b, c) => (a + b) / c
var operation = ((_:Double) + (_:Double)) / (_:Double)
// error: value / is not a member of (Double, Double) => Double
var operation = ((_:Double) + (_:Double)).toDouble / (_:Double)
// error: …
Run Code Online (Sandbox Code Playgroud)

scala anonymous-function

0
推荐指数
1
解决办法
43
查看次数

为什么我们需要在 Anonymus 块的最后一部分 BEGIN END(执行部分)?

当我尝试运行此代码时

DECLARE
TYPE type_a IS
    TABLE OF NUMBER INDEX BY PLS_INTEGER;
output NUMBER := 1;

FUNCTION fun_2 RETURN type_a IS
    dum type_a;
BEGIN
    SELECT
        employee_id
    BULK COLLECT
    INTO dum
    FROM
        employees;

    RETURN dum;
END fun_2;

PROCEDURE proc_1 AS
BEGIN
    NULL;
END;
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

错误报告 - ORA-06550:第 22 行,第 8 列:PLS-00103:在预期以下情况之一时遇到符号“文件结束”:

begin function pragma procedure 06550. 00000 - "line %s, column %s:\n%s" *原因:通常是 PL/SQL 编译错误。*行动:

但是当我最后添加 BEGIN END 时它工作正常

    DECLARE
    TYPE type_a IS
        TABLE OF NUMBER INDEX BY PLS_INTEGER;
    output NUMBER := …
Run Code Online (Sandbox Code Playgroud)

oracle plsql anonymous-function oracle11g oracle19c

0
推荐指数
1
解决办法
25
查看次数

在javascript中修改匿名函数中的变量

我试图简单地从jQuery $ .get()调用获得响应,并将其存储到变量中.事实证明这比我想象的要困难得多.这是我的代码:

var response;
    $.get(("action.php?action=addFolder&folderName=" + input),  
        function(data, status){
             response = data
        }
    );
return response;
Run Code Online (Sandbox Code Playgroud)

但响应总是未定义或为空.我怎样才能解决这个问题?

javascript variables ajax jquery anonymous-function

-2
推荐指数
1
解决办法
267
查看次数

为什么AJAX完成和错误回调都触发?

这是一个带有匿名回调的简单的AJAX请求.双方completeerror已触发.为什么?

$.ajax({
  url:'/echo/js/?js=hello%20world!',
  complete: function (response) {
    console.log("In anonymous success callback");
    console.log("response text: " + response.responseText);
    console.log("response object:");
    console.log(response);
  },
  error: function (error) {
    console.log("In anonymous error callback");
    console.log("error object:");
    console.log(error);
  }
});
Run Code Online (Sandbox Code Playgroud)

https://jsfiddle.net/abalter/tz0tu04y/

编辑 我尝试使用promises,现在我只是得到错误.我的"简单的"ajax肯定有问题.

$.ajax({
    url: '/echo/js/?js=hello%20world!',
    type: 'POST',
  })
  .done(function(response) {
    console.log("In anonymous JS success callback");
    console.log("response text: " + response.responseText);
    console.log("response object:");
    console.log(response);
  })
  .fail(function(error) {
    console.log("In anonymous JS error callback");
    console.log("error object:");
    console.log(error);
  })
  .always(function(data) {
    console.log("JS I will always do …
Run Code Online (Sandbox Code Playgroud)

javascript ajax jquery callback anonymous-function

-3
推荐指数
1
解决办法
755
查看次数