Scala的泛型
我想为进程序列编写一个函数,如下所示:Scala的泛型,scala,Scala,我想为进程序列编写一个函数,如下所示: def wrap[A >: Seq[_], B](seq : A)(f : () => B): Option[B] = { if(seq.isEmpty) None else Some(f()) } 但它不起作用 错误: 如果没有,我是空的 我做错了什么?你根本不需要说关于A的任何事情。只需假设包装的第一个参数是一个Seq,然后就可以传入一个Seq或其任何子类: def wrap[B](seq : Seq[_])(f : ()
def wrap[A >: Seq[_], B](seq : A)(f : () => B): Option[B] = {
if(seq.isEmpty) None
else Some(f())
}
但它不起作用
错误:
如果没有,我是空的
我做错了什么?你根本不需要说关于A的任何事情。只需假设包装的第一个参数是一个Seq,然后就可以传入一个Seq或其任何子类:
def wrap[B](seq : Seq[_])(f : () => B): Option[B] = {
if(seq.isEmpty) None
else Some(f())
}
wrap(List(1,2,3))(() => "hi") //returns Some("hi")
你根本不需要说任何关于A的事。只需假设包装的第一个参数是一个Seq,然后就可以传入一个Seq或其任何子类:
def wrap[B](seq : Seq[_])(f : () => B): Option[B] = {
if(seq.isEmpty) None
else Some(f())
}
wrap(List(1,2,3))(() => "hi") //returns Some("hi")
你做错的是>:,你需要你做错的是>:,你需要或只是seq.headOption.mapx=>只为seq.headOption.mapx=>f