相关疑难解决方法(0)

scala tuple拆包

我知道这个问题以不同的方式出现过很多次.但我现在还不清楚.有没有办法实现以下目标.

def foo(a:Int, b:Int) = {}

foo(a,b) //right way to invoke foo

foo(getParams) // is there a way to get this working without explicitly unpacking the tuple??

def getParams = {
   //Some calculations
   (a,b)  //where a & b are Int
}
Run Code Online (Sandbox Code Playgroud)

parameters scala tuples

90
推荐指数
3
解决办法
3万
查看次数

Scala中类型归属的目的是什么?

关于什么类型的归属,规范中没有太多信息,并且当然没有关于它的目的的任何信息.除了"使传递varargs工作",我会使用什么类型的归属?下面是一些scala REPL的语法和使用它的效果.

scala> val s = "Dave"
s: java.lang.String = Dave

scala> val p = s:Object
p: java.lang.Object = Dave

scala> p.length
<console>:7: error: value length is not a member of java.lang.Object
       p.length
         ^
scala> p.getClass
res10: java.lang.Class[_ <: java.lang.Object] = class java.lang.String

scala> s.getClass
res11: java.lang.Class[_ <: java.lang.Object] = class java.lang.String

scala> p.asInstanceOf[String].length
res9: Int = 4
Run Code Online (Sandbox Code Playgroud)

scala static-typing ascription

71
推荐指数
2
解决办法
1万
查看次数

Dataframe:为Scala中的所有列添加前缀

val prefix = "ABC"
val renamedColumns = df.columns.map(c=> df(c).as(s"$prefix$c"))
val dfNew = df.select(renamedColumns: _*)
Run Code Online (Sandbox Code Playgroud)

嗨,我对scala相当新,上面的代码可以很好地为所有列添加前缀.有人可以解释一下它是如何工作的细分吗?上面的第二行将返回col1的地图为ABCcol1,col2为ABCcol2 ....等我无法理解第三行正在做什么,特别是":_*最后.

感谢您的帮助.

scala dataframe

3
推荐指数
1
解决办法
2591
查看次数

_*是什么意思

val numbers = scala.collection.parallel.mutable.ParTrieMap(
    (1 until 100) zip (1 until 100): _*
  ) map { case (k, v) => (k.toDouble, v.toDouble) }
Run Code Online (Sandbox Code Playgroud)

对于上面的代码,我知道它(1 until 100) zip (1 until 100)会返回类似于 Map 的东西,但是_*遵循它的含义是什么?

syntax scala

0
推荐指数
1
解决办法
1352
查看次数