Array[0] <div>그냥 array네.. </div> <div><br></div> <div>Array[1][1]</div> <div>멀티야 뭐.. </div> <div><br></div> <div>matrix[2,2]</div> <div>멀티야 뭐.. 근데, 왜 표시 방식이 두 가지야. 설마, struct, class, enum 뭐 이런 걸 저렇게 쓴다는 건 아니겠지. ㅋㅋㅋㅋㅋㅋㅋㅋ</div> <div><br></div> <div><b>쓰는데, </b>헐...</div> <div><br></div> <div><div>struct Matrix {</div> <div> let rows: Int, columns: Int</div> <div> var grid: Double[]</div> <div> init(rows: Int, columns: Int) {</div> <div> self.rows = rows</div> <div> self.columns = columns</div> <div> grid = Array(count: rows * columns, repeatedValue: 0.0)</div> <div> }</div> <div> func indexIsValidForRow(row: Int, column: Int) -> Bool {</div> <div> return row >= 0 && row < rows && column >= 0 && column < columns</div> <div> }</div> <div> subscript(row: Int, column: Int) -> Double {</div> <div> get {</div> <div> assert(indexIsValidForRow(row, column: column), "Index out of range")</div> <div> return grid[(row * columns) + column]</div> <div> }</div> <div> set {</div> <div> assert(indexIsValidForRow(row, column: column), "Index out of range")</div> <div> grid[(row * columns) + column] = newValue</div> <div> }</div> <div> }</div> <div>}</div> <div><br></div></div> <div>이거 struct임.. 우와..... subscript라는 특수함수를 지정하면 matrix[2,2]처럼 쓸 수 있습니다. 사용은 다음과 같이 합니다.</div> <div><br></div> <div><div>var matrix = Matrix(rows: 2, columns: 2) // 선언</div></div> <div>println("\(matrix[1,1])") // 콘솔에 표시 0.0 이라고 나오겠죠.</div> <div><br></div> <div>p.s. 참고로 이중배열은 다음과 같이 정의합니다.</div> <div><p style="margin:0px;font-size:11px;line-height:normal;font-family:Menlo;"><span style="color:#bb2ca2;">var</span> testDoubleArray = <span style="color:#703daa;">Array</span>(count:<span style="color:#272ad8;">3</span>, repeatedValue:<span style="color:#703daa;">Array</span>(count:<span style="color:#272ad8;">3</span>, repeatedValue:<span style="color:#272ad8;">0.0</span>))</p> <p style="margin:0px;font-size:11px;line-height:normal;font-family:Menlo;">쓸 때는 다른 언어처럼 그냥 쓰면 됩니다.</p> <p style="margin:0px;font-size:11px;line-height:normal;font-family:Menlo;color:#4f8187;">testDoubleArray<span style="color:#000000;">[</span><span style="color:#272ad8;">1</span><span style="color:#000000;">][</span><span style="color:#272ad8;">1</span><span style="color:#000000;">] = </span><span style="color:#272ad8;">1.0</span><span style="color:#000000;"> + </span><span style="color:#272ad8;">1.0</span></p> <p style="margin:0px;font-size:11px;line-height:normal;font-family:Menlo;"></p> <p style="margin:0px;font-size:11px;line-height:normal;font-family:Menlo;color:#4f8187;"><span style="color:#3d1d81;">println</span><span style="color:#000000;">(</span><span style="color:#d12f1b;">"</span><span style="color:#000000;">\(</span>testDoubleArray<span style="color:#000000;">[</span><span style="color:#272ad8;">1</span><span style="color:#000000;">][</span><span style="color:#272ad8;">1</span><span style="color:#000000;">])</span><span style="color:#d12f1b;">"</span><span style="color:#000000;">) // 2.0 이라고 뜹니다. </span></p></div>
댓글 분란 또는 분쟁 때문에 전체 댓글이 블라인드 처리되었습니다.