[TIL] Swift 문법 메소드(Methods)
·
Swift/문법
메소드(Methods) 특정 타입의 Class, Struct, enum과 관련된 함수 특저 타입의 인스턴스에서 실행할 수 있는 메소드를 인스턴스 메소드, 특정 형과 관련된 메소드를 타입 메소드 인스턴스 메소드(Instance Methods) 특정 Class,Struct,enum (OOP)의 인스턴스에 속한 메소드 인스턴스 내의 값을 제어하거나 변경할 수 있음 // Counter클래스를 선언하고 인스턴스 메소드로 각각 increment(), increment(by amount: Int),reset()를 //정의해 인스턴스 내의 countproperty를 변경하는 기능을 수행 class Counter { var count = 0 func increment() { count += 1 } func increme..
[TIL] Swift 문법 클래스와 구조체
·
Swift/문법
클래스와 구조체(Classes and Structures) 클래스와 구조체는 프로그램의 코드를 조직화 하기 위해 일반적으로 사용 OOP를 위한 필요 요소 클래스와 구조체의 비교 (Comparing Classes and Structures) Swift에서 클래스와 구조체는 많은 공통점이 있움. 클래스와 구조체 둘다 다음과 같은 기능이 가능. 공통점 값을 저장하기 위한 프로퍼티 정의 기능을 제공하기 위한 메소드 정의 subscript 문법을 이용해 특정 값을 접근할 수 있는 subscript정의 초기 상태를 설정할 수 있는 initializer 정의 기본 구현에서 기능 확장 특정한 종류의 표준 기능을 제공하기위 한 프로토콜 순응 프로퍼티, 메소드, 서브스크립트, 초기화, 확장 그리고 프로토콜을 참조 구조체로..
[TIL] Swift 문법(함수 Functions)
·
Swift/문법
함수 정의와 호출 함수를 선언할때는 가장 앞에 func 키워드를 붙이고 (person:String) 파라미터와 형 그리고 → String 형태로 정의함 func example(person:String) -> String { let greeting = "Hello," + person + "!" return greeting } 정의한 함수에 인자 값을 넣어 호출한 예시 print(example(person: "Bulmang")) // Print "Hello, Bulmang!" 위 함수에서 메세지를 결합하는 부분과 반환하는 부분을 합쳐서 더 짧게 만들 수 있음 func shortExample(person: String) -> String { return "Hello again, " + person + "!" ..
[TIL] Swift 제어문
·
Swift/문법
For-In 문(For-In Loops) for-in문는 배열,숫자,문자열을 순서대로 순회하기 위해 사용 let name = ['Bulmang','Jun','Malty','Nova','Jay'] for name in names { print("Hello, \\(name)!") } Dictionary에서 반환된 키값쌍으로 구성된 튜플을 순회하며 제어 가능 let number = ['Bulmang':25,'Jun':27,'Malty':29,'Nova':23,'Jay':29] for (name,age) in nubmer { print("\\(name) : \\(legCount)") }ㅓ Dictionary에 담긴 내용은 정렬이 되지 않은 상태, 사전에 넣었던 순서대로 순회되지 않음.아래와 같이 숫자 범위를 지..
[TIL] Swift 문법(문자열과 문자)
·
Swift/문법
💡 Swift의 String은 Foundation 프레임워크의 NSString이 bridge된 타입이기 때문에 NSString의 메소드를 String에서 캐스팅 없이 사용 가능합니다. 내가 이 글을 읽었을 때 이해한것은 Foundation안에 NSString이 있어서 String을 사용할 수 있다. 정확히 이해하기 위해 검색을 해봤다. bridge : Objective-C 간의 상호 운용성을 위해 제공되는 기술로, Swift 코드와 Objective-C 코드 간의 상호작용을 가능하게 한다. Swift는 Foundation 프레임워크와의 높은 상호 운용성을 지원하기 위해, **String**과 NSString 사이의 자동적인 타입 변환을 제공합니다. 따라서 **String**에서 **NSString**의 ..
[프로그래머스] 문자열 반복 출력
·
알고리즘/프로그래머스
import Foundationfunc solution(_ my_string: String, _ n: Int) -> String { var result = "" //my_string의 길이가 2 이상 5 이하, n이 2 이상 10 이하인지 확인합니다. 만약 그렇지 않다면, 빈 문자열을 반환합니다. guard 2...5 ~= my_string.count && 2...10 ~= n else { return "" } //my_string의 각 문자 char에 대해 n번씩 반복해서 result에 추가합니다. for char in my_string { for _ in 1...n { result.append(char) } ..
[TIL] 기본 연산자(Basic Operators) & 데이터 구조
·
Swift/문법
Swift에서는 통상적으로 산술연산자, 논리연사자 a.. b) 작다 (a = b) 작거나 같다 (a
[TIL] Switch문, 삼항연산자, 데이터구조
·
Swift/문법
Switch와 if 사용하는 이유 switch문장은 완전하다, 즉 이 문장은 case 체크 할 수 있는 모든 값의 블록 또는 사용자가 가지고 있어야 한다. default, if, else if는 놓칠 수 있다. 여러 개의 가능한 결과에 대한 값을 확인하려면 해당 값은 한번만 읽히지만 if는 여러번 읽는다. 함수 호출의 일부는 속도가 느려질 수 있기 때문에 함수 호출을 사용하기 시작할때 기능이 중요하다. 다루기 어려운 고도의 패턴 매칭을 가능하게 한다. 추가로 3개이상의 동일한 값을 체크하고 싶다면 사용하기도 한다. Switch 문장은 처음에 확인해야 할 어떤 값이 필요하다. default: 모든 case 값이 일치하지 않을 때 실행되는 코드 블록이다. 코드 예시 int num = 3; String res..
[TIL] Swift 문법(contains, allSatisfy)
·
Swift/문법
코딩테스트를 보다가 배열 메서드를 찾았다. contains, allSatisfy인데 아주 유용한 메서드이다 contains() Swift의 contains() 메서드는 어떤 값이 지정한 범위에 포함되어 있는지 여부를 확인할 수 있는 메서드 contains() 메서드는 두 개의 매개변수를 받습니다. 첫 번째 매개변수는 범위를 나타내는 Range 또는 ClosedRange 타입의 인스턴스이며, 두 번째 매개변수는 확인하고자 하는 값입니다. Range는 시작값과 끝값을 포함하지 않는 범위를 나타내고, ClosedRange는 시작값과 끝값을 포함하는 범위를 나타냅니다. 예를 들어, 다음 코드에서 contains() 메서드를 사용하여 1...10 범위에 5와 15가 포함되어 있는지 여부를 확인할 수 있습니다 le..
[Swift] 기본 문법 정리
·
Swift/정리
이름짓기 규칙 기본적으로 카멜 케이스 사용 Lower Camel Case: fuction,method,variable.constant Upper Camel Case: type(class,struct,enum,extension) 콘솔 출력 print 단순히 문자열 출력 dump 인스턴스의 자세한 설명(description property)까지 출력 문자열 보간법 String Interpolation 프로그램 실행 중 문자열 내에 변수 또는 상수의 실질적인 값을 표현하기 위해 사용한다. \( ) import Swift let age: Int = 10 "안녕하세요 저는\\(age + 5)살입니다!" Any, AnyObject, nil Any Swift의 모든 타입을 지칭하는 키워드 어떤 타입도 수용 가능합니다..
[프로그래머스] 옷가게 할인 받기
·
알고리즘/프로그래머스
안녕하세요 Bulmang입니다!하루에 40분이상은 코딩테스트 한 문제를 풀고 있습니다!오늘은 런타임 에러가 나서 코드를 수정하였습니다.런타임에러가 났던 이유는 if 조건문을 많이 사용해서 런타임에러가 났던 것 같습니다!그후 삼항연산자를 사용해봤습니다변경 전func solution(_ price:Int) -> Int { var result : Int var discount : Double guard 10...1000000 ~= price else { return 0 } if price >= 100000 { discount = Double(price) * 0.05 } else if price >= 300000 { discount = D..
[Swift] 첫 iOS 앱 개발자를 위한 가이드 from Lingo
·
Swift/정리
Intro 안녕하세요 bulmang입니다~! 오늘은 Lingo가 설명해주신 내용을 따로 정리하여 공유하고자 합니다! 내용은 iOS 개발이 처음이신 분들을 위한 내용으로 한번 참고 하시면 좋을 것 같습니다. apple은 생각보다 다양한 사이트를 가지고 있습니다. https://www.apple.com/education/ Education Apple technology and resources empower every kind of educator and student to learn, create, and define their own success. www.apple.com https://www.apple.com/swift/ Swift - Apple Swift is everywhere. And now i..
[TIL] Swift 문법, 협업 능력
·
Swift/문법
Swift 문법 코딩 테스트 연습을 하다가 문법에 관한 것을 배웠다. for i in 0...array는 배열의 인덱스 범위를 0부터 배열의 마지막 인덱스까지 모두 포함하는 반면, for i in 0..
[Swift] Swift에서 사용되는 디자인 패턴(pattern)과 예제 코드
·
Swift/정리
안녕하세요 bulmang입니다. Swift 패턴에 대해 알아보고 정리해봤습니다, 틀린 부분이 있으면 알려주시면 감사하겠습니다. Swift에서 패턴은 코드에서 반복되는 공통적인 구조를 식별하는 방법입니다. 패턴은 코드를 작성할 때 일관성 있게 사용하므로 코드의 가독성과 유지보수성을 향상시키는 데 도움이 됩니다. Decorator 패턴 Decorator 패턴은 객체의 기능을 동적으로 확장하는 방법입니다. 이 패턴은 객체를 래핑하고, 래핑된 객체와 동일한 인터페이스를 제공하여 기능을 추가하거나 수정합니다. 이 패턴은 객체의 변경이나 확장을 클래스의 서브 클래스 생성을 통해 하지 않고, 런타임에 유연하게 처리할 수 있습니다. 예를 들어, 다음은 커피에 시럽을 추가하는 예제 코드입니다. protocol Coffe..
[SwiftUI]Tab Animation
·
Swift/개발
안녕하세요 bulmang입니다!! 😄 오늘은 아카데미에 가기전에 다시 Swift 개발 공부를 어느정도 해야 될 것 같아서 인강을 듣고 공부하여 블로그에 정리를 하려고 합니다. 앱 설명 SwiftUI로 개발한 코드이며 Tab Animation에 대한 앱입니다. 앱 기능 선형 보간 공식을 이용하여 두 지점 사이의 값을 추정할 때 그 값을 두 지점과의 직선 거리에 따라 선형적으로 결정하는 방법이다. 이미지를 넘길때 Rectangle을 사용하여 indicator 넓이와 위치를 정하여 움직여준다. 문법 TabView: 탭을 구성하고 각 탭에 대한 콘텐츠를 추가 할 수 있음 GeometryReader: 화면에 보여지는 뷰(View)의 크기 및 위치 정보를 제공하는 뷰 자식 뷰에 대한 레이아웃 정보를 제공하므로, 자..