質問するログイン新規登録

回答編集履歴

1

内容の修正

2019/12/14 12:28

投稿

yudedako67
yudedako67

スコア2052

answer CHANGED
@@ -2,8 +2,8 @@
2
2
  var multi = Array((2,4,8),(3,6),(12))
3
3
  ```
4
4
  このコードでは多次元配列にはなりません。
5
- multiの各要素(2,4,8),(3,6),(12)は、それぞれタプルという型になります。
5
+ multiの各要素(2,4,8),(3,6),(12)は、それぞれタプルという型とInt型になります。
6
- 要素の数が違うタプルは違う型なのmultiの型はその要素数が違うタプルの共通のスーパークラスであるAny型を要素に持つ配列(Array[Any])だと推論されます。(ScalaではAnyはすべての型のスーパークラスです)
6
+ そこでmultiの型はそれらの共通のスーパークラスであるAny型を要素に持つ配列(Array[Any])だと推論されます。(ScalaではAnyはすべての型のスーパークラスです)
7
7
  その結果、multi(a)はAny型のオブジェクトということになり、lengthやapplyを呼び出したときにエラーになるということです。
8
8
  解決法はきちんと要素が配列になるようにArrayで囲うことです。
9
9
  ```Scala