如果lambda表达式不需要参数,因此它的名称是否过多,我如何编写它?
这种方式无法编译:
>>> liste_groupe=(('image1', 'image2', 'image6'),('image5', 'image4', 'image8', 'image7', 'image3', 'image9'))
>>> l = [item for t in liste_groupe for item in t]
>>> len(l)
9
# Or use itertools.chain
>>> import itertools
>>> l = list(itertools.chain(*liste_groupe))
>>> len(l)
9
但是这个确实:
>>> count = sum([len(t) for t in liste_groupe])
>>> count
9
有更好的方法吗?
答案 0 :(得分:29)
既然你已经提到过这个有用了
setRowFactory(__ -> new TableRowCustom());
我假设预期的功能接口方法必须接受单个参数。 The identifier _
is a reserved keyword since Java 8.
我只会使用一次性(有效标识符)字符。
setRowFactory(i -> new TableRowCustom());
setRowFactory($ -> new TableRowCustom()); // allowed, but avoid this
甚至
setRowFactory(ignored -> new TableRowCustom());
要明确。
Java Language Specification定义了lambda表达式的语法
LambdaExpression:
LambdaParameters -> LambdaBody
和
LambdaParameters:
Identifier
( [FormalParameterList] )
( InferredFormalParameterList )
InferredFormalParameterList:
Identifier {, Identifier}
换句话说,您不能省略标识符。
正如Holger所示,如果他们决定使用_
作为未使用的参数名称,则可以很容易地从源代码中的__
更改为_
码。你现在可能只想坚持下去。