일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
31 |
- qaautomation
- playwright
- Python
- 다트언어
- iOS프로그래밍
- 테스트자동화
- Swift5
- 파이썬자동화
- 다트기초문법
- 다트
- 스위프트
- 야곰스위프트
- dartlang
- ios개발
- SWIFT
- 테스트오토메이션
- Flutter
- pythonautomation
- 플러터
- 스위프트개발
- 다트기본문법
- 티스토리챌린지
- 로봇프레임워크
- testautomation
- robotframework
- 스위프트프로그래밍
- DART
- 오블완
- QA자동화
- 테킷앱스쿨
- Today
- Total
목록스위프트 (11)
day_by_day
어제보단 홀가분한 금요일. 한주의 마무리! ❤️Liked(좋았던 점) Swift의 객체 지향과 자료구조에 대해 좀 더 이해하게 되었다 네비게이션 스택을 이용하기 시작하며 데이터 자료구조에 대해 고민하고 기능을 개발하게 되었다. 객체지향이라고까지 하면 거창하지만 구조체 내부의 데이터들에 어떻게 접근할지, 또 어떻게 외부에서 사용할지 한번씩 더 고민하고 코딩하게 되는 게 어쩐지 생각하는 코딩인형(?)이 된 것 같아서 기분이 좋았다. 항상 코더가 아닌 개발자, 개발자가 아닌 설계자가 되자는 큰 꿈이 있는데 챗대리와의 대결에 좀 더 자신감이 생겼다 함께 목표를 그리고 시작하기 실습을 시작하기 전에 피그마로 간단하게라도 화면을 그리고 시작하니 목표지점이 한 곳으로 통일되서 코딩하는 과정에서 의사소통이 더 잘됬다...
매개변수로 함수를 갖는 함수를 고차함수라 하며, 대표적인 고차함수로는 맵, 필터, 리듀스 등이 있다. 15.1 맵 자신을 호출할 때 매개변수로 전달된 함수를 실행하여 그 결과를 다시 반환해주는 함수 맵은 시퀀스, 컬렉션 프로토콜을 따르는 타입과 옵셔널은 모두 맵을 사용할 수 있다 맵은 기존 데이터를 변형할 때 많이 사용 컨테이너가 담고 있던 각가의 값을 매개변수를 통해 받은 함수에 적용한 후 다시 컨테이너에 포장하여 반환 기존 컨테이너의 값은 변경되지 않고 새로운 컨테이너가 생성되어 반환됨 사용방법은 for-in과 유사하나 코드의 재사용성이나 컴파일러 최적화 측면에서 성능차이가 있음 같은 기능을 여러번 사용할 것이라면 하나의 클로저를 여러 map 메서드에 사용하는 편이 좋다 let even: [Int] ..
옵셔널 체이닝과 옵셔널 바인딩의 차이 Swift에서 옵셔널 체이닝과 옵셔널 바인딩은 모두 옵셔널을 처리하는 데 사용되는 방법이다. 옵셔널 체이닝은 옵셔널 값의 속성이나 메서드에 액세스하는 데 사용되는 반면, 옵셔널 바인딩은 옵셔널 값이 nil이 아닌지 확인하고 값이 nil이 아니라면 값을 변수에 할당하는 데 사용됩니다. 14.1 옵셔널 체이닝 옵셔널에 속해 있는 nil 일지도 모르는 프로퍼티, 메서드, 서브스크립션 등을 가져오거나 호출할 때 사용할 수 있는 일련의 과정 옵셔널을 반복 사용하여 옵셔널이 자전거 체인처럼 서로 꼬리를 물고 있는 모양이기 때문에 옵셔널 체이닝이라고 부른다 옵셔널에 값이 있다면 프로퍼티, 메서드 등 호출 가능 옵셔널이 nil 이라면 nil 반환 중첩된 옵셔널 중 하나라도 값이 존..
11.1 인스턴스 생성 스위프트의 이니셜라이저는 직접 구현할 수 있으며 반환값이 없음 이니셜라이저는 func 키워드를 사용하지 않고 init 키워드를 사용하여 이니셜라이저 메서드임을 표현 11.1.1 프로퍼티 기본값 구조체와 클래스의 인스턴스는 처음 생성할 때 옵셔널 저장 프로퍼티를 제외한 모든 저장 프로퍼티에 적절한 초기 값을 할당해야 함 이니셜라이저가 실행될 때 저장 프로퍼티에 값을 할당할 수 있음 이니셜라이저를 통해 초기값을 할당하거나 프로퍼티 기본값을 통해 처음 저장 프로퍼티가 초기화 될 때는 프로퍼티 감시자 메서드가 호출되지 않음 11.1.2 이니셜라이저 매개변수 이니셜라이저도 매개변수를 가질 수 있음 여러 종류의 이니셜라이저를 만들 수 있음 struct Area { var squareMeter..
열거형, 구조체의 인스턴스는 값 타입, 클래스의 인스턴스는 참조 타입 소스파일 하나에 여러개의 구조체와 여러 개의 클래스를 정의하고 구현할 수 있음 9.1 구조체 9.1.1 구조체 정의 struct 구조체 이름 { //구조체 이름은 대문자 카멜케이스 프로퍼티와 메소드들 } 예시 strcut BasicInformation { var name: String var age: Int } 9.1.2 구조체 인스턴스의 생성 및 초기화 초기화 시 기본적으로 생성되는 멤버 와이즈 이니셜라이저를 사용 사용자 정의 이니셜라이저도 구현 가능 var personInfo: BasicInformation = BasicInformation(name: "blair", age: 99) personInfo.age = 100 person..
스위프트의 특징 중 안정성을 보장해주는 기능 변수나 상수 등에 꼭 값이 있다는 것을 보장할 수 없다. 해당 값이 nil 일 수도 있다. 옵셔널이란? 값이 있을수도 있고 없을수도 있다. 8.1 옵셔널의 사용 옵셔널을 읽을 때 : 해당 변수 또는 상수에는 값이 없을 수 있다. 즉, 변수 또는 상수가 nil일 수도 있으므로 사용에 주의하라. var name: String = "blair" name = nil / 오류 표현 var name: String? = "blair" print(name) name = nil print(name) // nil name = "blair" print(name) print(name ?? "none") //Optional("blair") //blair 옵셔널 열거형의 정의 publ..
스위프트에서 함수는 일급 객체 : 하나의 값으로 사용할 수 있음 협업자끼리 코딩 규칙을 만들고 함수를 사용하는 것이 바람직 7.1 함수와 메서드 함수와 메서드는 기본적으로 같으며 어디서 사용되느냐에 따라 이름이 다를 뿐임 메서드 : 구조체, 클래스, 열거형 등 특정 타입에 연관되어 사용되는 함수 함수 : 모듈 전체에서 전역적으로 사용할 수 있는 함수 7.2 함수의 정의와 호출 재정의(오버라이드)와 중복 정의(오버로드) 모두 지원 7.2.1 기본적인 함수의 정의와 호출 기본 형태 func 함수 이름(매개변수...) -> 반환 타입 { 실행 구문 return 반환값 } 예제 func hello(name: String) -> String { return "Hello \\(name)!" } let helloJe..
6.1 조건문 6.1.1 if 구문 스위프트의 if 구문은 조건의 값이 꼭 Bool 타입이어야 한다 마지막 else는 생략 가능 if 단독 사용 가능 if first > second { print("test") } else if first < second { print("test2") } else { print("test3") } var isDarkMode : Bool = false if isDarkMode { print("dark mode") } else { print("it's not dark mode") } 6.1.2 Switch 구문 break 키워드를 생략할 수 있음 switch 구문의 case를 연속 실행하려면 fallthrough 키워드 사용 case에 들어갈 비교값은 입력값과 데이터 타입이..
스위프트의 연산자는 특정한 문자로 표현한 함수 5.1 연산자의 종류 5.1.1 할당 연산자 a = b 5.1.2 산술 연산자 a + b a -b a * b a / b a % b 5.1.3 비교 연산자 a == b a ≥ b a ≤ b a > b a < b a != b A === B : 참조가 같다 A와 B가 레퍼런스 타입일 때 같은 인스턴스를 가리키는지 비교하여 불리언 값을 반환 A !== B : 참조가 같지 않다 A ~= B : A와 B의 패턴이 매치되는지 확인하여 불리언 값을 반환 5.1.4 삼항 조건 연산자 Question ? a : b 5.1.5 범위 연산자 값의 범위를 나타낼 때 폐쇄 범위 연산자 a…b a,b 를 포함한 범위 반폐쇄 범위 연산자 a.. b(오른쪽) , a Int { return..

4.1 데이터 타입 안심 스위프트의 특징 safe, fast ,expressive 중 safe 가 가장 뚜렷하게 나타나는 부분 값 타입의 데이터 교환은 엄밀히 말하면 타입캐스팅이 아닌 새로운 인스턴스를 생성하여 할당하는 것 4.1.1 데이터 타입 안심이란 스위트는 type-safe 언어로 컴파일시 타입을 확인하는 타입확인이 일어남 여러 타입을 섞어 사용할 때 발생할 수 있는 런타임 오류를 피할 수 있음 4.1.2 타입추론 변수나 상수 선언 시 특정 타입을 명시하지 않아도 컴파일러가 할당된 값을 기준으로 타입을 결정 var name = "blair" name = 100 //앞서 타입 추론에 의해 stirng 값으로 추론되었기 때문에 정수 할당 시 오류 발생 4.2 타입 별칭 데이터 타입에 임의로 별칭을 부..