Swift - 배열 (특정 배열 함수 확인하기) 헷갈렸다 기억하자

이희수·2022년 12월 21일
0

Swift

목록 보기
1/4

Array

배열

swift에서 배열을 다룰때 무지하게 생각했던 것이 있다

공부를 할때 어떠한 배열이 눈에 보일때는 내가 저 배열에 원하는 데이터가 훤히 보이니 어떻게 다뤄야 할지 알기 때문에 코드를 무작정 쉽게 작성하는 버릇이 생기려고 한다

var array = [d, b, c, d, d, y]

만약 이 배열에 마지막 index에 d를 확인하여 삭제하려고 한다면 ?
array.remove(at:4)
// 해당 배열에 index4를 삭제한다

왜 이렇게 사용하지 않는걸까?

지금 배열에 d가 있다는것이 보이지만 앱을 만들다 보면 수백줄의 코드가 생겨 해당 배열을 확인하는것이 불가피 할때가 있다 그렇다면 저런 코드는 효율성이 없다

var array = [d, b, c, d, d, y]

var lastIndexOfD = array.lastIndex(of: "d")!

array.remove(at: lastIndexOfP)

print(array)
//출력 [d, b, c, d, y]

이런 무지한 코드도 생겨날수 있다
왜 무지하냐?


lastIndex의 함수는 Optional type이다 해당 index에 데이터가 없을수도 있기에 임시값으로 오류가 나지 않게 하기 위함이다 지금은 값이 보이기 때문에 강제로 임시값을 Unrapping하여 위 코드처럼 사용할수도 있지만 위에 거론했던 말처럼 수백줄의 코드를 작성하면 좋을지 헷갈렸었다




답은 간단했다

var array = [d, b, c, d, d, y]

if let lastIndexOfD = array.lastIndex(of: "d") {
	array.remove(at: lastIndexOfD)
}

print(array)
//출력 [d, b, c, d, y]

보통 옵셔널을 다룰때 if let 바인딩을 통해서 논리적으로 unrapping하여 사용한다 이를 배열에서 다룰때 풀이해본다면


해당 배열의 데이터가 nil이 아니면(임시값이 비어있지 않다면) 배열의 마지막 요소에 "d"를 찾으면 if let 바인딩의 상수에 할당하여 할당된 상수를 remove(at:)함수를 이용하여 삭제한다

보통 이렇게 내가 원하는 배열의 데이터를 확실하게 확인하지 못할때 특정한 데이터를 확인,삭제하고 싶은경우 위 문법을 사용하고 논리적으로 해당 배열을 확인한 후에 다루도록 하자




헷갈렸으니 기록한다

0개의 댓글