본문 바로가기

iOS/Swift

(5)
[Swift] Class와 Struct의 차이점 `class`와 `struct`는 언뜻 보면 비슷해 보일 수 있다. class Vehicle { var wheel = 4 func move() { print("move forward") } } struct Vehicle { var wheel = 4 func move() { print("move forward") } } 다음 예시를 보면 `class`와 `struct`라는 이름만 달라졌지 그 이외에 달라진 것은 없어보인다. let vehicle1 = Vehicle() 또한 사용을 할 때도 위와 같이 같은 꼴이다 보니 두 가지를 굳이 왜 구분해놓았지?라고 생각할 수 있다. 왜냐? 내가 처음에 그랬으니까~ 하지만 두개는 엄연히 다른 것이다.! 하나하나 어디가 다른지 같이 짚어보자. 1. 상속 `class`와 ..
[Swift] while문의 구문이름표를 알아보자 코드를 짜다보면 반복문을 중첩해서 사용해야하는 일이 꼭 생긴다. 하지만 파이썬 개발을 하던 내가 정말 불편하다고 느꼈던 점은 파이썬에는 breakpoint가 존재하지 않는다. 그래서 이중 반복문이 되었을 때 모든 코드에서 break하기 정말 까다로웠다.;; 하지만 swift에는 breakpoint보다 더 유용한 구문이름표 라는 것이 존재한다. 구문이름표는 반복문마다의 이름을 설정해주고, 그 지정된 구문을 break나 continue등으로 바로 바깥쪽 반복문을 종료시킬 수 있다. var numbers: [Int] = [3, 2343, 6, 3432] numbersLoop: for num in numbers { if num > 5 || num < 1{ continue numbersLoop } var cou..
[Swift] String 관련 메서드 정리 hasPrefix 지정된 접두어로 시작하는지 확인하고, Bool값을 반환한다. let hello = "Hello" print(hello.hasPrefix("He")) // 출력 : true hasSuffix 지정된 접미어로 끝나는지 확인하고, Bool값을 반환한다. let hello = "Hello" print(hello.hasSuffix("lo")) // 출력 : true uppercased 모든 문자를 대문자로 바꾼 문자열을 반환한다. let hello = "Hello" print(hello.uppercased()) // 출력 : HELLO lowercased 모든 문자를 소문자로 바꾼 문자열을 반환한다. let hello = "Hello" print(hello.lowercased()) // 출력 :..
[Swift] 튜플 (Tuple) 알아보기 튜플 (Tuple) 튜플이란 "데이터의 묶음"이다. 타입에 따로 구애받지 않기 때문에 여러가지의 타입의 데이터를 묶어서 관리할 떄 사용된다. 다음 코드처럼 타입을 미리 정해서 사용할 수도 있고, var person : (String, Int, Double) = ("Suzzang", 26, 164.9) 다음 코드처럼 타입을 따로 정하지 않고 사용할 수도 있다. var person = ("Suzzang", 26, 164.9) 이때 튜플은 타입 추론에 의해서 컴파일러가 할당된 값을 기준으로 타입을 결정한다. 옵션을 누르고 튜플의 이름을 눌러보면 다음과 같이 자료형이 정해져 있는 것을 볼 수 있다. 튜플의 각 요소는 다음과 같이 튜플의 인덱스 값을 통해서 접근할 수 있다. var person : (String,..
[Swift] Map 알아보기 Map 자기 자신을 호출할 때 매개변수로 전달된 함수를 실행하여 결과를 반환하는 함수로, Sequence, Collection 프로토콜을 따르는 타입과 옵셔널은 모두 맵을 사용할 수 있다. let numbers : [Int] = [0, 1, 2, 3, 4] var squareNumber = numbers.map({(number : Int) -> Int in return number * number}) print(squareNubmer) //[0, 1, 4, 9, 16]for-in 구문으로 사용할 수 있지만, 그렇게 되면 시간복잡도나 코드의 깔끔함 부분에서 차이를 보이기 때문에 간결하게 쓰기 좋다. 클로저의 사용 클로저 표현으로 map을 더 쉽게 활용할 수 있다. let numbers : [Int] = [..