| // WITH_STDLIB | |
| import kotlin.test.* | |
| val sb = StringBuilder() | |
| class ArraysConstructor { | |
| private val memberArray: IntArray | |
| constructor(int1: Int, int2: Int) { | |
| memberArray = IntArray(2) | |
| set(int1, int2) | |
| } | |
| fun set(int1: Int, int2: Int) { | |
| memberArray[0] = int1 | |
| memberArray[1] = int2 | |
| } | |
| fun log() { | |
| sb.appendLine("Array (constructor init):") | |
| sb.appendLine("Size: ${memberArray.size}") | |
| sb.appendLine("Contents: ${memberArray.contentToString()}") | |
| } | |
| } | |
| class ArraysDefault { | |
| private val memberArray = IntArray(2) | |
| constructor(int1: Int, int2: Int) { | |
| set(int1, int2) | |
| } | |
| fun set(int1: Int, int2: Int) { | |
| memberArray[0] = int1 | |
| memberArray[1] = int2 | |
| } | |
| fun log() { | |
| sb.appendLine("Array (default value init):") | |
| sb.appendLine("Size: ${memberArray.size}") | |
| sb.appendLine("Contents: ${memberArray.contentToString()}") | |
| } | |
| } | |
| class ArraysInitBlock { | |
| private val memberArray : IntArray | |
| init { | |
| memberArray = IntArray(2) | |
| } | |
| constructor(int1: Int, int2: Int) { | |
| set(int1, int2) | |
| } | |
| fun set(int1: Int, int2: Int) { | |
| memberArray[0] = int1 | |
| memberArray[1] = int2 | |
| } | |
| fun log() { | |
| sb.appendLine("Array (init block):") | |
| sb.appendLine("Size: ${memberArray.size}") | |
| sb.appendLine("Contents: ${memberArray.contentToString()}") | |
| } | |
| } | |
| fun box(): String { | |
| val array1 = (::ArraysConstructor)(1, 2) | |
| array1.log() | |
| array1.set( 3, 4) | |
| array1.log() | |
| val array2 = (::ArraysDefault)(1, 2) | |
| array2.log() | |
| array2.set( 3, 4) | |
| array2.log() | |
| val array3 = (::ArraysInitBlock)(1, 2) | |
| array3.log() | |
| array3.set( 3, 4) | |
| array3.log() | |
| assertEquals(""" | |
| Array (constructor init): | |
| Size: 2 | |
| Contents: [1, 2] | |
| Array (constructor init): | |
| Size: 2 | |
| Contents: [3, 4] | |
| Array (default value init): | |
| Size: 2 | |
| Contents: [1, 2] | |
| Array (default value init): | |
| Size: 2 | |
| Contents: [3, 4] | |
| Array (init block): | |
| Size: 2 | |
| Contents: [1, 2] | |
| Array (init block): | |
| Size: 2 | |
| Contents: [3, 4] | |
| """.trimIndent(), sb.toString()) | |
| return "OK" | |
| } |