[Swift] 문자열 나누기 split()과 components() 를 알아보자!
·
📌 Swift
코로나에 걸리고 여러가지 일에 겹쳐서 오랜만에 글을 쓰게 되었네요.. 다시 열심히 해야지.. 오늘은 Swift에서 문자열을 처리하는 방법중에 문자열을 쪼개야 하는 경우에 사용되는 split와 components 메소드에 대해서 알아보겠습니다. 알고리즘에서도 자주 사용되는 메소드이니 차이점을 알아두면 좋겠죠?  split()split 메소드를 먼저 공식문서를 통해서 봅시다. 위와같이 split 메소드는 separator, maxSplits, omittingEmptySubsequences 의 3가지 파라미터가 있습니다. 하나씩 알아봅시다! 📍 separatorCharacter 타입으로, 매개변수를 받아서 해당 인자를 기준으로 쪼개주는 역할을 합니다. 우리가 원하는 바로 그 역할이죠 let str = "He..
[오늘의 Swift 지식] 고차 함수 (map, filter, reduce)
·
📌 Swift
고차 함수란?고차 함수(Higher-Order Function)는 하나 이상의 함수를 인자로 받거나, 함수를 결과로 반환하는 함수를 말합니다. 스위프트에서 제공하는 고차함수는 map, filter, reduce 3가지가 있으며, 컬렉션을 처리할 때 매우 유용합니다.  map(변형)map 메서드는 컨테이너 내부에 각 요소를 변형(transform)하여 새로운 컨테이너를 생성합니다. 다만, 새로운 컨테이너를 생성한 것이기 때문에 기존의 데이터는 변하지 않습니다. map은 for-in 구문과 유사한 결과를 만들지만, 코드가 더 간결하고 선언적으로 작성할 수 있다는 장점이 있습니다. 그러면, for-in 문과 map 메서드를 사용한 코드를 비교해보겠습니다. for-inlet numbers: [Int] = [0,..
[오늘의 Swift 지식] stride 함수 (백준 2742번 기찍 N, 역수 구하기)
·
📌 Swift
백준의 2741번째 문제를 풀고 기찍N 이라는 2742번을 풀다가 오류가 계속 나서 찾아보다가 stride라는 함수를 찾게 되었습니다.그냥 공부만 하기에는 잊어버릴 것 같고 꾸준히 참고할 거 같아서 정리하였습니다. stride( ) 함수 먼저 stride가 무슨 뜻인지 궁금해서 검색을 해보았는데요. 사전적인 의미는 "보폭"이라네요? 코딩에서는 이 의미를 그대로 적용해서 "특정 간격(보폭)만큼 이동"하는 반복을 의미하는 것 같습니다.또한, 위에 있는 공식문서의 Return Value부분을 보면 "start(from)부터 end(to) 방향으로 가되, end(to)는 포함하지 않는다."라고 작성되어 있습니다. 즉, stride(from: to: by: )는 시작값(from)부터 종료값 바로 전까지(to), ..
[오늘의 Swift 지식] In-Out이란 무엇일까?
·
📌 Swift
In-Out은 왜 사용하는 것일까?C, C++, Python, Java 등의 언어에서 함수의 파라미터는 "변수"로 사용됩니다. 그렇다면, Swift에서도 함수의 파라미터는 변수일까요? 답은 그렇지 않습니다. Swift에서 함수의 매개변수는 기본적으로 변경할 수 없는 값(상수처럼 동작)으로 처리됩니다.즉, 함수 내에서 매개변수의 값을 직접 수정하려고 하면 컴파일 에러가 발생합니다. 그렇다면, 메서드 내에서 인자값을 변경하고 원본 변수에도 영향을 주어서 그 변수에서 벗어나더라도 값이 유지가 되게 하려면 어떻게 해야 할까요? 🤔 그럴 때 사용하는 것이 바로 inout 매개변수입니다. 보통 함수 내부에서 전달받은 값을 다른 변수에 저장해두고 처리하는 방식으로도 작업할 수 있지만, 이 경우 함수가 종료되면 값이..
[오늘의 Swift 지식] 전달인자(Argument)와 매개변수(Parameter)
·
📌 Swift
안녕하세요:) 오늘은 전달인자(Argument)와 매개변수(Parameter)에 대해 정리하겠습니다.   아래의 코드는 매개변수 이름과 레이블의 표현 방식입니다.  띄어쓰기를 하다가 조금 헷갈릴 수 있다고 생각이 들어서 띄어쓰기 부분에 _로 표시해 두었으니 참고해주세요 :)func 함수 이름(전달인자_레이블 매개변수_이름: 매개변수_타입, ...) -> 반환_타입 { 실행_구문 return 반환_값} 위의 예시만 봐도 알 수 있을 거 같지만, 아래의 예시 코드를 보면서 전달인자(Argument)와 매개변수(Parameter)에 대해 조금 더 풀어서 설명을 해보겠습니다.func add(_ a: Int, _ b: Int) -> Int { return a + b}add(10, 5) // add..
[오늘의 Swift 지식] if let과 guard let의 차이는?
·
📌 Swift
Optional Binding을 아시는 분들은 if let을 한 번쯤은 보셨을 겁니다.오늘은 Optional Binding을 사용할 때 유용한 if let과 guard let에 대해 알아보겠습니다.   guard let과 if let은 공통적으로 옵셔널 바인딩이라는 특징을 가지고 있습니다. Optional 타입은 값이 있을 수도, 없을 수도 있는 변수를 표현할 때 사용됩니다. 하지만 안전하게 값을 사용하려면 Optional Binding을 통해 Unwrapping해야 합니다. 이럴 때 안전하게 값을 추출하기 위해 사용하는게 guard let과 if let입니다.  if let이란?if let은 성공시와 실패 시 2가지 경우로 나눠서, 두 분기 모두에 우리가 원하는 코드를 작성해줄 수 있는데요.값이 있을 ..