SWIFT91 Swift : 기초문법 [String의 프로퍼티 및 메서드] String의 프로퍼티 및 메서드 Swift를 사용해오면서 우리는 지금까지 많은 String 을 사용해왔고, Swift에서 Stirng은 Struct 라는것을 알게 되었습니다. 그리고 이 String 에는 자체 메서드 와 프로퍼티 를 가지고 있습니다. let string = "서근 개발 노트 블로그 입니다." 1. Count count 프로퍼티를 사용하여 문자열의 문자 개수를 셀 수 있습니다. print(string.count) //17 var toys = "" if toys.count == 0 { print("아무것도 들어있지 않습니다.") } //아무것도 들어있지 않습니다. 2. hasPrefix() hasPrefix() 문자열이 특정 문자로 시작하면 true를 반환하는 메서드가 있습니다. 첫 단어만.. SWIFT/Grammar 2021. 2. 27. Swift : 기초문법 [구조체 - Struct] 본 게시글은 yagom님의 Swift 프로그래밍 3판을 참고하여 작성되었습니다. STRUCT(구조체) CLASS와 다르게 상속이 불가능합니다. (인스턴스/타입) 메서드, (인스턴스/타입) 프로퍼티 (클래스와 같음) 값타입(value 라고 부름) Swift의 대부분의 큰 뼈대는 모두 STRUCT(구조체)로 구성이 되어있습니다. Int, Double, String 등 데이터 타입 Struct를 사용하는 경우 연관된 몇몇의 값들을 모아서 하나의 데이터 타입으로 표현하고 싶을 때, 다른 객체 또는 함수 등으로 전달될 때 참조가 아닌 복사를 원할 때, 자신을 상속할 필요가 없거나 자신이 다른 타입을 상속받을 필요가 없을 때, Apple 프레임워크에서 프로그래밍을 할 때에는 주로 클래스를 많이 사용한다. 키워드 s.. SWIFT/Grammar 2021. 2. 26. Swift : 기초문법 [#4 후행 클로저에 매개변수 사용 ] 매개변수를 받을 때, 클로저를 매개변수로 사용 함수에 전달하는 클로저는 자체 매개변수를 받을 수도 있습니다. 여태까지 우리는 ( ) -> Void 를 "매개변수가 없고, 아무것도 반환하지 않는다"라는 의미로 사용해왔지만, 클로저에서 허용되는 모든 매개변수 유형으로 ( ) 에 채울 수 있습니다. func travel(action: (String) -> Void) { print("나는 지금 집에 가고 있다..") action("서울") print("나는 도착했다!") } 이제 후행 클로저 구문을 사용하여 travel() 을 호출할 때 문자열을 승인하기 위해 클로저 코드가 필요합니다. travel { (place: String) in print("나는 지금 \(place)로 가고 있다.") } //나는 지금 .. SWIFT/Grammar 2021. 2. 25. Swift : 기초문법 [#3 후행 클로저 - Closure syntax] 후행 클로저 함수에 대한 마지막 매개 변수가 클로저인 경우 Swift는 후행클로저 구문이라는 특수 구문을 사용할 수 있습니다. 클로저를 매개변수로 전달하는 대신 { } 안의 함수 바로 뒤에 전달합니다. (후행 클로저 사용 시 가독성이 좋습니다) func travel(action: () -> Void) { print("나는 나갈 준비를 하고있다.") action() print("나는 도착했다!") } 마지막 매개변수가 클로저이기 때문에 다음과 같이 후행 클로저를 travel()구문을 사용하여 호출할 수 있습니다. travel() { print("나는 지금 차를 타고 이동중이다.") } 위 코드에는 실제로 다른 매개변수가 없기 때문에 ( ) 를 완전히 제거할 수 도 있습니다. travel { print("나.. SWIFT/Grammar 2021. 2. 24. Swift : 기초문법 [#2 클로저를 함수로 전달] 클로저를 함수로 전달 클로저는 String 과 Int 처럼 사용할 수 있으므로 이것을 함수에 전달할 수 있습니다. 이건 처음배우는 분들에겐 정말 복잡하고 어렵기 때문에 단계별로 진행하도록 하겠습니다. 먼저 기본 diriving() 클로저를 만들겠습니다. let driving = { print("나는 지금 차를 타고 이동중이다.") } 위 클로저를 함수에 전달하여 함수 내에서 실행 할 수 있도록 하려면 매개변수 유형을 () -> void 즉, 매개변수를 작성하지 않고 아무것도 반환하지 않아야 합니다. 따라서 아래와 같이 작성할 수 있습니다. 함수에 반환하는 곳을 잘 확인해주세요. func travel(action: () -> Void) { print("나는 나갈 준비를 하고있다.") action() pri.. SWIFT/Grammar 2021. 2. 24. Swift : 기초문법 [#1 클로저 기본 - Closure] 클로저는 조금 복잡하기 때문에 조금씩 단계 별로 알아보도록 하겠습니다. 기본 클로저 - Creating basic closures 클로저는 일정 기능을 하는 코드를 하나의 블록으로 모아놓은 것을 말합니다. 함수를 만들어 변수에 할당하고, 해당 변수를 사용하여 해당 함수를 호출하고, 해당 함수를 다른 함수에 매개 변수로 전달할 수도 있습니다. 이러한 방식으로 사용되는 함수를 클로저라고 하며 함수처럼 작동하지만 약간 다르게 작성됩니다. 메시지를 인쇄하는 간단한 예제로 시작해 보겠습니다. let driving = { print("나는 지금 운전을 하고 있다.") } 자 이렇게 이름없이 함수를 생성했고, driving 에 함수가 할당되었습니다. 이제 driving() 사용하여 호출 할 수 있습니다. 클로저는 무.. SWIFT/Grammar 2021. 2. 24. Swift : 기초문법 [매개변수 레이블 - Parameter Label] 매개변수 레이블(Parameter labels) 함수에 대한 게시글에서 매개변수에 대해 알아봤었습니다. (함수에 대해 자세히 알고 싶다면 여기를 클릭해주세요) 간단하게 매개변수에 대해 다시 집어보자면 매개변수는 함수가 정의될 때 함수가 전달받게 되는 변수(상수) 혹은 그 이름 입니다. 함수에 전송된 값을 매개 변수 라고 합니다. 자신의 함수가 매개 변수를 받아들이도록 하려면 각 매개 변수에 이름을 지정한 다음 콜론:을 지정한 다음 Swift에 데이터 유형을 알려야 합니다. 예시를 함께 보며 알아보도록 하겠습니다. func square(number: Int) -> Int { return number * number } let result = square(number: 8) //16 파라미터의 이름이numb.. SWIFT/Grammar 2021. 2. 23. Swift : 기초문법 [중첩된 루프에서 Break] 중접된 루프에서 Break 루프 내부에 루프를 넣으면 중첩 루프(nestedloop)라고 하며, 내부 루프와 외부 루프를 동시에 중단하는 것이 드문 일이 아닙니다. 예를 들어, 다음과 같이 1부터 10까지 구구단을 작성할 수 있습니다. for i in 1...10 { for j in 1...10 { let product = i * j print ("\(i) * \(j) is \(product)") } } //1 * 1 is 1 ~ 10 * 10 is 100 도중에 종료하려면 두 가지를 수행해야 합니다. 먼저 외부 루프에 outerLoop 레이블을 지정합니다. outerLoop: for i in 1...10 { for j in 1...10 { let product = i * j print ("\(i) * .. SWIFT/Grammar 2021. 2. 21. Swift : 기초문법 [Break Loop / 항복건너뛰기(Continue)] Break break키워드를 사용하여 언제든지 루프를 종료할 수 있습니다. 이를 사용해보기 위해 While문을 사용하여 코드를 작성하겠습니다. var countDown = 10 while countDown >= 0 { print(countDown) countDown -= 1 } print("서근블로그") 위 코드에서 if문을 사용하여 조건을 만들었습니다. countDown이 0보다 크거나 같으면 카운트를 하고 -1 씩 합니다. 그리고 조건문인 카운트가 4가 되면 아래 텍스트를 출력하는 것이죠. var countDown = 10 while countDown >= 0 { print(countDown) countDown -= 1 if countDown == 4 { print("Let's go now!") } .. SWIFT/Grammar 2021. 2. 21. Swift : 기초문법 [Repeat 루프] Reapeat 루프 세 번째 루프 작성 방법은 자주 사용되지 않지만 아주 쉽습니다. Repeat루프라고 불리며, 마지막에 확인할 조건을 제외하고 While루프와 동일합니다. var number = 1 repeat { print(number) number += 1 } while number 0 print("Lift off!") var frogs = 4 repeat { for _ in 1...frogs { print("repeat문 안에 for문!") } } while false var scales = ["A", "B", "C", "D", "E"] var scaleCounter = 0 repeat { print("Play the \(scales[scaleCounter]) scale") scaleCounter.. SWIFT/Grammar 2021. 2. 21. Swift : 기초문법 [While 루프] While 루프 루프를 작성하는 두 번째 방법은 while문을 사용하는 것입니다. 확인할 조건을 지정하면 해당 루프 코드가 조건이 실패 할 때까지 계속반복하게 됩니다. 예를 들어, 우리는 1부터 20까지 카운트 한다음 마지막에 "준비 됐으면 시작하겠습니다!" 라는 텍스트를 출력 하려고 합니다. 그렇다면 아래와 같이 While문을 사용하면 됩니다. var number = 1 while number 0 { number -= 2 if number % 2 == 0 { print("\(number) is an even number.") } } //8 is an even number. //6 is an even number. //4 is an even number. //2 is an even number. //0 .. SWIFT/Grammar 2021. 2. 21. Swift : 기초문법 [For 루프] For 루프 Swift에서 루프를 작성하는 다양한 방법이 있지만 기본 메커니즘은 동일합니다. 조건이 거짓으로 평가 될 때까지 일부 코드를 반복적으로 실행합니다. Swift에서 가장 일반적인 루프는 for루프입니다. 배열과 범위를 반복하고 루프가 돌아갈 때마다 하나의 항목을 꺼내 상수에 할당합니다.예를 들어 아래코드는 숫자 범위입니다. let count = 1...10 for루프를 사용하여 다음과 같이 각 항목을 인쇄 할 수 있습니다 . for number in count { print("숫자는 \(number) 입니다") } 배열로도 똑같이 할 수 있습니다 : let albums = ["다이너마이트", "디오니소스", "불타오르네"] for album in albums { print("\(album)은 .. SWIFT/Grammar 2021. 2. 21. Swift : 기초문법 [스위치 - Switch(break/fallthrough)] 목차 Switch switch 구문도 소괄호(())를 생략할 수 있습니다. 단, break 키워드 사용은 선택 사항입니다. 즉, case 내부의 코드를 모두 실행하면 break 없이도 switch 구문이 종료된다는 의미입니다. 이것은 예상치 못한 실수를 줄이는 데도 큰 도움이 됩니다. 따라서 break를 사용하지 않고 case를 연속 실행하던 트릭을 더 이상 하용하지 못합니다. 그렇기 때문에 swift에서 switch 구문의 case를 연속 실행하려면 fallthrough키워드를 사용해야 합니다. Switch 구문의 기본 형태 switch 비교값 { case 패턴: /*실행구문*/ default: //else if 같은 개념 /*실행구문*/ } switch문을 잘 사용하면 if 문 보다 읽기가 훨씬 쉽습.. SWIFT/Grammar 2021. 2. 20. Swift : 기초문법 [삼항 연산자 - ternary operator] 삼항 연산자 Nil-coalescing : 옵셔널 값을 풀어주는 개념으로 삼항연산자를 활용해서 쓸 수 있습니다. (연산자? : 값을 확인, 변경, 결합하는데 사용하는 특별한 기호나 문구) 삼항연산자는 ( ? ) = true, ( : ) = false 라고 생각하면 쉽습니다. 첫 번째 값에 지정된 조건을 확인하고 true이면 두 번째 값을 반환하지만 false이면 세 번째 값을 반환합니다. let firstCard = 11 let secondCard = 10 print(firstCard == secondCard ? "카드가 일치합니다." : "카드가 일치하지 않습니다.") //print = 카드가 일치하지 않습니다. 두 카드가 동일한 지 확인한 다음 조건이 true이면 "카드가 일치합니다"를 print하고.. SWIFT/Grammar 2021. 2. 20. Swift : 기초문법 [논리 연산자 - Logical Operators] 논리 연산자 Swift에는 조건을 함께 결합 할 수있는 두 가지 특수 연산자가 있습니다. 논리 곱 AND (a && b) 논리 합 OR (a || b) 예를 들어 두 사람의 나이가 다음과 같이 특정 값을 초과하는지 확인할 수 있습니다. let age1 = 12 let age2 = 21 //만약 12가 18보다 크고 21이 18보다 크다면 실행 if age1 > 18 && age2 > 18 { print("두명 모두 18세 이상") } else { print("두 명 모두 18세 이하") } //print = 두 명 모두 18세 이하 && 에 대한 대안 은 || 입니다. || 은 하나의 항목이 테스트를 통과하면 true로 평가됩니다. 예를 들어 18 세 이상인 경우 조건을 프린트 할 수 있습니다. let .. SWIFT/Grammar 2021. 2. 20. 이전 1 2 3 4 5 6 7 다음 한국어 (기본) English Русский 日本語 👉🏻 잠깐만요! 이 글도 한 번 보고 가세요 이전글 다음글 티스토리툴바 서근 개발노트구독하기