[英]How to define value of function type alias without repeating the types?
给定函数类型别名:
type Func = (Int, Double) => String
我想定义一个这样的功能,一种方法是
val foo: Func = (n: Int, d: Double) => n.toString + " " + d.toString
但是我试图理解是否有一种类似于访问元组的更简单的方法,而不必在已知类型时再次明确命名参数,例如(假设)
val foo: Func = _1.toString + " " + _2.toString
有什么可以实现这一目标的吗? 这将节省大量的输入时间,并使我的代码更具可读性。
是的。
val foo: Func = _.toString + " " + _.toString
您必须意识到,参数n
和d
并不构成Tuple
,而是独立的。 要成为元组,类型应为((Int, Double)) => String
,请注意附加括号。
您始终可以使用普通的速记符号来依次遍历参数:
val foo: Func = _ + " " + _
如果这还不够通用,则只需命名参数,而无需再次提供其类型:
val foo: Func = (x,y) => (x + (x + y*y)).toString
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.