我在这里收到错误:
val a: Int = 1
val i: Int with Object = a
Run Code Online (Sandbox Code Playgroud)
如何在scala中将此1转换为整数对象?我的目的是将它传递给Array[Int with Object].它目前显示错误:
error type mismatch
found : Int(1)
required: Int with java.lang.Object
val i: Int with Object = a
^
Run Code Online (Sandbox Code Playgroud)
编辑
我有这个错误,因为我使用ArrayAdapterscala 的android ,因此通过定义:
class ImageAdapter[T](ctx: Context, viewResourceId: Int, pointers: Array[T]) extends ArrayAdapter[T](ctx, viewResourceId, pointers) { ... }
Run Code Online (Sandbox Code Playgroud)
它抛出了这个错误:
overloaded method constructor ArrayAdapter with alternatives:
(android.content.Context,Int,java.util.List[T])android.widget.ArrayAdapter[T] <and>
(android.content.Context,Int,Array[T with Object])android.widget.ArrayAdapter[T] <and>
(android.content.Context,Int,Int)android.widget.ArrayAdapter[T]
cannot be applied to (android.content.Context, Int, Array[T])
Run Code Online (Sandbox Code Playgroud)
所以我需要T用 …
我需要编写一个函数,它接受任意大小的字符串元组,在每个元素上调用trim并返回一个新的元组.我有点陷在下面这一点,代码已经不是类型安全了.另外,一旦我将它转换为迭代器,我不知道如何回到元组.有没有更优雅的方法来解决这个问题?解决方案需要适用于Scala 2.9.2
def trim(input:Product)={
input.productIterator.asInstanceOf[Iterator[String]].map(_.trim)
}
Run Code Online (Sandbox Code Playgroud) scala> val a = List(1,2)
a: List[Int] = List(1, 2)
scala> val b = List(3,4)
b: List[Int] = List(3, 4)
scala> val c = List(5,6)
c: List[Int] = List(5, 6)
scala> val d = List(7,8)
d: List[Int] = List(7, 8)
scala> (a,b,c).zipped.toList
res6: List[(Int, Int, Int)] = List((1,3,5), (2,4,6))
Run Code Online (Sandbox Code Playgroud)
现在:
scala> (a,b,c,d).zipped.toList
<console>:12: error: value zipped is not a member of (List[Int], List[Int], List[Int], List[Int])
(a,b,c,d).zipped.toList
^
Run Code Online (Sandbox Code Playgroud)
我想做以下或类似的事情:
for((itemA,itemB,itemC,itemD) <- (something)) yield itemA + itemB …Run Code Online (Sandbox Code Playgroud)