如何在 Scala 中检查 return 值类型
how to check return value type in scala
我是一个刚开始学习scala的人。
请问如何查看函数return的值类型?
例如:
def decode(list :List[(Int, String)]):List[String] = {
//val result = List[String]()
//list.map(l => outputCharWithTime(l._1,l._2,Nil))
//result
excuteDecode(list,List[String]())
def excuteDecode(list:List[(Int,String)],result:List[String]):List[String] = list match {
case Nil => Nil
case x::Nil=>outputCharWithTime(x._1,x._2,result)
case x::y =>excuteDecode(y,outputCharWithTime(x._1,x._2,result))
}
def outputCharWithTime(times:Int,str:String , result :List[String]):List[String]={
times match{
case 0 => result
case x => outputCharWithTime(times-1,str,str::result)
}
}
}
在此代码中,所有函数 return 类型都设置为 List[String],还为 excuteDecode() 函数创建了一个空的 List[String] 参数。
但是我得到一个编译错误:
错误:(128, 5) 类型不匹配;
发现:单位
必需:列表[字符串]
}
任何人都可以告诉我为什么存在问题以及如何自己检查实际的 return 类型?
语句的顺序在这里很重要。
def decode(list :List[(Int, String)]):List[String] = {
def excuteDecode(list:List[(Int,String)],result:List[String]):List[String] = list match {
case Nil => Nil
case x::Nil=>outputCharWithTime(x._1,x._2,result)
case x::y =>excuteDecode(y,outputCharWithTime(x._1,x._2,result))
}
def outputCharWithTime(times:Int,str:String , result :List[String]):List[String]={
times match{
case 0 => result
case x => outputCharWithTime(times-1,str,str::result)
}
}
excuteDecode(list,List[String]()) // Moved here
}
在 Scala 中,块中的最后一个表达式定义了整个块的内容 returns; def
等语句被定义为生成 Unit
(()
).
我是一个刚开始学习scala的人。
请问如何查看函数return的值类型?
例如:
def decode(list :List[(Int, String)]):List[String] = {
//val result = List[String]()
//list.map(l => outputCharWithTime(l._1,l._2,Nil))
//result
excuteDecode(list,List[String]())
def excuteDecode(list:List[(Int,String)],result:List[String]):List[String] = list match {
case Nil => Nil
case x::Nil=>outputCharWithTime(x._1,x._2,result)
case x::y =>excuteDecode(y,outputCharWithTime(x._1,x._2,result))
}
def outputCharWithTime(times:Int,str:String , result :List[String]):List[String]={
times match{
case 0 => result
case x => outputCharWithTime(times-1,str,str::result)
}
}
}
在此代码中,所有函数 return 类型都设置为 List[String],还为 excuteDecode() 函数创建了一个空的 List[String] 参数。
但是我得到一个编译错误:
错误:(128, 5) 类型不匹配; 发现:单位 必需:列表[字符串] }
任何人都可以告诉我为什么存在问题以及如何自己检查实际的 return 类型?
语句的顺序在这里很重要。
def decode(list :List[(Int, String)]):List[String] = {
def excuteDecode(list:List[(Int,String)],result:List[String]):List[String] = list match {
case Nil => Nil
case x::Nil=>outputCharWithTime(x._1,x._2,result)
case x::y =>excuteDecode(y,outputCharWithTime(x._1,x._2,result))
}
def outputCharWithTime(times:Int,str:String , result :List[String]):List[String]={
times match{
case 0 => result
case x => outputCharWithTime(times-1,str,str::result)
}
}
excuteDecode(list,List[String]()) // Moved here
}
在 Scala 中,块中的最后一个表达式定义了整个块的内容 returns; def
等语句被定义为生成 Unit
(()
).