inflearn logo
강의

Course

Instructor

The Complete Guide to Swift5 for iOS Development

Subscript

if랑 옵셔널 사용했는데 뭐가 잘못된걸까요? 똑같이 인덱스 범위 벗어난다고하네요

370

wooledsheep3239

1 asked

0

- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!
- 먼저 유사한 질문이 있었는지 검색해보세요.
- 서로 예의를 지키며 존중하는 문화를 만들어가요.
- 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.
let m = Matrix()
m[0,0]
// m[0,10]

struct Matrix2 {
    var data = [[1, 2, 3],
                [4, 5, 6],
                [7, 8, 9]]
    
    subscript(row: Int, col: Int) -> Int? {
        if row < data.count && col < data[0].count { // 행의개수, 열의개수 미만 3이면 0~2까지
            return data[row][col]
        } else { return nil }
    } // 읽기전용 서브스크립트, get {}생략 됨
}

let test = Matrix()
m[0,4]

subscript if ios swift optional outOfRange

Answer 1

0

KxCoding

안녕하세요 :) 

두번째 인덱스 4는 범위를 벗어난 인덱스 입니다.

data에 저장된 배열에는 모두 세 개의 배열이 저장되어 있고, 각 배열마다 세 개의 숫자가 저장되어 있습니다.

그래서 두 배열 모두 유효한 인덱스 범위는 0 ~ 2입니다.

0

wooledsheep3239

ㅠ.ㅠ.. 2차원 배열 인덱스가 다 2까지인건 아는데욥..

해당 인강 마지막에 인덱스 유효값일때만 확인하는거 도전과제로

구현해보라해서 저렇게 해봤는데

if랑 옵셔널 사용한 조건식은 에러가 안나는데

코드 실행하면 out of range라고 떠서요ㅜ 

0

KxCoding

조건식에서 항상 첫 번째 배열에 접근하고 있네요. 이 부분을 수정해 보시기 바랍니다.

그리고 추가로 Matrix2 인스턴스에 접근해야 하는것 아닌가요?

0

wooledsheep3239

오오 됐어요.. 감사합니다.. ㅠㅠㅋㅋㅋㅋ

Matrix2로 만들어놓고 그냥 Matrix()로 썼네요 ㅡㅡ;; 
row번째로 하려면 조건식이 

if row < data.count && col < data[row].count { // 행의개수, 열의개수 미만 3이면 0~2까지

            return data[row][col]

        } else { return nil }

왠지 이렇게하면 될거같은데 선생님 의견은 어떠신지염


Closures syntax Optimization 부분 contains 문제

0

397

1

2강, 3강

0

342

1

UI가 너무 다른것같아요;

1

339

1

강의 Optional Chaining에서 질문있습니다

0

306

1

질문

0

304

1

내장함수에 클로져 적용 이해가 잘 안됩니다.

0

310

1

선생님 질문드리겠습니다.

0

320

1

혹시 스위프트 최근 버전에서는 가변 파라미터 2개 사용할 수 있나요?

0

391

1

샘플 파일 형식이

0

357

1

이렇게 구현하는거 맞나요?

0

292

2

xcode12 에서 #1쪽에 입력한 g2에서 에러가 발생하지 않습니다

0

266

1

insert 와 replace

0

236

1

정규 표현식 오류

0

266

1

drop while 문제

0

278

1

insert 컴파일러 오류

0

293

2

capitalized 오류

0

327

2

Index(_rawBits) 출력 문제

0

369

2

컴파일러 오류

0

367

2

iOS 템플릿에 Single View App이 뜨지 않아요.

0

288

1

에러 메세지가 떳습니다 ㅠㅠ

0

177

1

Size관련 문장에서...

0

172

1

버전이 달라서 진행에 어려움이 있습니다.

0

261

2

안녕하세요 강의 잘 듣고있습니다

0

192

1

구구단 구현에 대해서

0

265

1