问题标签 [function-literal]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
scala - Scala 函数中的占位符不适用于可变地图
我在 Scala 中有以下代码有效:
如果我在函数中包含占位符,它会中断:
抛出以下错误:
queryMap 变为不可变 Map 而不是可变 Map。我的语法结构有问题吗?
scala - 写成 _:type 的 scala 表示法是什么?
我正在关注 scala 教程。
在函数字面量中,它具有以下符号:
例如,
在这种表示法中,我无法理解(_ : type )的含义。
scala - 我的函数的扩展函数缺少参数类型;不为另一个具有相同签名的人
简短形式:我有一个与 . 签名相同的方法Future.recover
。将部分函数传递给Future
的版本有效。将相同的 PF 传递给我的版本会导致missing parameter type for expanded function. The argument types of an anonymous function must be fully known. (SLS 8.5)
错误。有什么不同?
更长的形式:我正在尝试实现此处TracingFuture
讨论的类,以尝试跨未来边界跟踪错误。基本技术是将 Future 包装在另一个类中,同时添加一个伪堆栈跟踪。TracingFuture
博客文章中给出的代码缺少recover
from 的方法Future
,所以我用相同的签名添加了它:
为了比较,这是Future
. 请注意,除了额外的隐式参数之外,签名是相同的。
最后,我产生编译错误的代码:
和错误信息:
再一次,这段代码适用于,Future.recover
但我得到一个编译错误TracingFuture.recover
。我不明白为什么。
这个 SO question解释了编译器知道偏函数的参数必须是 T 的超类型,但不能保证。但是为什么它没有遇到这个问题Future.recover
呢?
而且,当然,我想知道除了重写匿名部分函数以使类型显式之外,我是否还能做些什么。
scala - scala:以下两个是否相同
代码段 1
代码片段2:
我是斯卡拉的新手。只是想知道上面两段代码是否相同?哪一个更好?
谢谢
scala - Scala Currying 和函数字面量
我在阅读the-neophytes-guide-to-scala-part-10时遇到了以下代码。
我理解为接收电子邮件返回布尔值的函数创建类型别名 EmailFilter 的第一行。但我不明白我们将电子邮件和数字作为输入并通过检查大小返回布尔值的第二行。请解码第二行并向我解释这个函数的语法糖代码。
scala - Scala 函数字面量中的变量定义
我想知道这段代码的结果
为什么函数中的变量t
只hello
赋值一次,结果是6,9,12....
我猜这可能与闭包属性有关,但为什么var t = 3
只执行一次?
scala - (println _) 中的下划线占位符如何表示其原始函数字面量的整个参数列表?
我试图举一个例子来解释不带括号的占位符 _ 可以表示(扩展为)任意数量的任何类型的参数,而不仅仅是可以表示任何类型的“仅一个”参数。但是,我做的那个是不正确的,因为 foreach 的参数(函数文字)仍然只需要一个参数。
// 下面解释上面占位符规则的代码是不正确的。
我做了一个修改的例子来简单说明这个规则。
这也许可以更清楚地解释规则。
我希望它是正确的。
// 原问题
在 Programming in Scala, 3rd Edition 一书的第 8.6 章部分应用函数中,示例显示:
上下文说函数字面量
可以代替
因为 _ 可以代表整个参数列表。
我知道下划线在其自身和函数名称(在本例中为 println)之间留有空格意味着下划线代表整个参数列表。
然而,在这种情况下,原始函数字面量中只有一个参数(每次迭代的 Int 元素)。
为什么本教程说 _ 代表整个参数列表?
函数字面量
在
显然只有一个参数,对吗?
kotlin - 如何在运行时获取函数文字的注解
demonstrate_usingReflect
输出
[0] 函数名 = f1 [0] 注释 = @_z_additional._13_Reflection_ObtainingAnnotationOfAFunctionLiteral_Test$A()
[1] 函数名 = [1] 注释 =
[2] 函数名 = [2] 注释 =
demonstrate_usingClass
错误输出
java.lang.UnsupportedOperationException:这个类是Kotlin编译器生成的内部合成类,比如lambda的匿名类、SAM包装器、可调用引用等。它不是Kotlin类或接口,所以反射库不知道它有什么声明。请使用 Java 反射检查此类:class _z_additional._13_Reflection_ObtainingAnnotationOfAFunctionLiteral_Test$f2$1