- About Scala
- Documentation
- Code Examples
- Software
- Scala Developers
Tuple oddness
Thu, 2009-03-12, 21:10
Getting some unexpected behavior from tuple element accessors (it
looks like implicits aren't working from Java array types to Scala
array types on tuple access)
scala> val foo = Array(1,2,3)
foo: Array[Int] = Array(1, 2, 3)
scala> val bar = (0, foo)
bar: (Int, Array[Int]) = (0,[I@268062)
scala> bar._2 == foo
res0: Boolean = true
scala> foo.drop(1)
res1: Array.Projection[Int] = Array(2, 3)
scala> bar._2.drop(1)
java.lang.ClassCastException: [I
at .(:7)
at .()
at RequestResult$.(:3)
at RequestResult$.()
at RequestResult$result()
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun
.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:
39)
at sun.reflect.DelegatingMethodAccessorImpl...
scala>
Am I missing something obvious?
-mike
Fri, 2009-03-13, 18:47
#2
Re: Tuple oddness
Actually, it's 2.7.3.final
-mike
On Mar 12, 2009, at 5:50 PM, Steve Bendiola wrote:
> what scala version are you using, 2.7.2 and 2.7.3 work for me.
>
> On Thu, Mar 12, 2009 at 3:08 PM, Mike T. Miller
> wrote:
>> Getting some unexpected behavior from tuple element accessors (it
>> looks like
>> implicits aren't working from Java array types to Scala array types
>> on tuple
>> access)
>>
>>
>> scala> val foo = Array(1,2,3)
>> foo: Array[Int] = Array(1, 2, 3)
>>
>> scala> val bar = (0, foo)
>> bar: (Int, Array[Int]) = (0,[I@268062)
>>
>> scala> bar._2 == foo
>> res0: Boolean = true
>>
>> scala> foo.drop(1)
>> res1: Array.Projection[Int] = Array(2, 3)
>>
>> scala> bar._2.drop(1)
>> java.lang.ClassCastException: [I
>> at .(:7)
>> at .()
>> at RequestResult$.(:3)
>> at RequestResult$.()
>> at RequestResult$result()
>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>> at
>> sun
>> .reflect
>> .NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>> at sun.reflect.DelegatingMethodAccessorImpl...
>> scala>
>>
>>
>> Am I missing something obvious?
>>
>> -mike
>>
>>
what scala version are you using, 2.7.2 and 2.7.3 work for me.
On Thu, Mar 12, 2009 at 3:08 PM, Mike T. Miller wrote:
> Getting some unexpected behavior from tuple element accessors (it looks like
> implicits aren't working from Java array types to Scala array types on tuple
> access)
>
>
> scala> val foo = Array(1,2,3)
> foo: Array[Int] = Array(1, 2, 3)
>
> scala> val bar = (0, foo)
> bar: (Int, Array[Int]) = (0,[I@268062)
>
> scala> bar._2 == foo
> res0: Boolean = true
>
> scala> foo.drop(1)
> res1: Array.Projection[Int] = Array(2, 3)
>
> scala> bar._2.drop(1)
> java.lang.ClassCastException: [I
> at .(:7)
> at .()
> at RequestResult$.(:3)
> at RequestResult$.()
> at RequestResult$result()
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> at sun.reflect.DelegatingMethodAccessorImpl...
> scala>
>
>
> Am I missing something obvious?
>
> -mike
>
>