1. ホーム
  2. arrays

Kotlinの2次元配列

2023-08-30 01:49:46

質問

どのようにKotlinで2D Int配列を作るのですか?私はこのコードをKotlinに変換しようとしています。

int[][] states = new int[][] {
      new int[]{-android.R.attr.state_pressed}, // not pressed
      new int[] { android.R.attr.state_pressed}  // pressed
};
int[] colors = new int[] {
      foregroundColor,
      accentColor,
      accentColor
};
ColorStateList myList = new ColorStateList(states, colors);

これは私が試した一つの試みで、最初の2次元配列はうまくいきませんでしたが、1次元配列はうまくいきました。

//This doesn't work:
var states: IntArray = intArrayOf(
    intArrayOf(-android.R.attr.state_pressed), // not pressed
    intArrayOf(android.R.attr.state_pressed)  // pressed
);
//This array works:
var colors: IntArray = intArrayOf(
    foregroundColor,
    accentColor,
    accentColor
);
val myList: ColorStateList = ColorStateList(states, colors);

どのように解決するのですか?

IntArraysを別の配列の中に入れて、2次元にしようとしています。 その配列の型はintArrayではありえないので、失敗します。 最初の配列を arrayOf の代わりに intArrayOf .

val even: IntArray = intArrayOf(2, 4, 6)
val odd: IntArray = intArrayOf(1, 3, 5)

val lala: Array<IntArray> = arrayOf(even, odd)