Starbucks Caramel Frappuccino
본문 바로가기
  • 그래 그렇게 조금씩

분류 전체보기275

스위프트와 프로그래밍 패러다임 '스위프트의 언어적 특성' 안정성(Safe) 엄격한 문법을 통해 개발자의 실수 미연에 방지 옵셔널, guard, 에러처리, 타입통제 등을 통해 안전한 프로그래밍 가능 신속성(Fast) C언어 기반 프로그래밍 언어를 대체하려는 목적으로 만들어짐 C언어 수준과 성능과 속도가 동등한 수준이 되도록 꾸준히 발전되는 중 컴파일 속도도 빠름! (스위프는 컴파일 언어) 표현성(Expressive) 다양한 언어들을 참고해 편하고 읽기 쉬운 문법을 구현할 수 있음. '다중 패러다임 프로그래밍 언어' 스위프트는 명령형 프로그래밍과 객체지향 프로그래밍 패러다임을 기반으로 한 함수형 프로그래밍 패러다임 / 프로토콜 지향 프로그래밍 패러다임 지향. 객체지향 프로그래밍 패러다임 Object-Oriented Programming,.. 2023. 4. 8.
10. [SwiftUI] Spacer() 같은 사이즈로 계속 resize 되는 것을 알 수 있다! Spacer는 minLength 파라미터가 있다!(옵셔널) Spcaer(minLength: nil) == Spacer() minLength를 nil로 두어도 어느정도의 최소길이는 default로 있음. 만약 스택에 수평패딩을 많이 주면 중앙으로 쪼그라 드는데 붉은 정사각형의 스페이서만 최소 길이를 정해준 케이스이다.(혼자만 긴 것을 알 수 있다.) (오른쪽 사진은 minLength: 0인 케이스_완전 붙게 할 수도 있다.) 종료 및 설정 버튼을 만드는 시나리오 버튼 사이에 스페이서를 넣어 HStack로 묶고, 이 HStack과 스페이서를 VStack으로 묶어주면 된다. // Created by Toughie on 2023/04/04. // impo.. 2023. 4. 5.
9. [SwiftUI] .padding() 패딩 고정적인 프레임을 정하는 방법 외에, 패딩을 활용하는 방법도 있다. (고정 된 프레임과 다르게, 텍스트가 길어지면 패딩은 다이나믹하게 적용됨.) 패딩에 패딩에 패딩 // Created by Toughie on 2023/04/04. // import SwiftUI struct padding_spacer: View { var body: some View { VStack(alignment: .leading) { Text("Hello, Toughie!") .font(.largeTitle) .fontWeight(.semibold) .padding(.bottom,20) Text("Hi, SwiftUI! I love coding.Hi, SwiftUI! I love coding.Hi, SwiftUI! I love co.. 2023. 4. 4.
18 - Changing Constraints 제약 변경 https://developer.apple.com/library/archive/documentation/UserExperience/Conceptual/AutolayoutPG/ModifyingConstraints.html Auto Layout Guide: Changing Constraints developer.apple.com 제약을 변경하는 방법은? (키보드가 올라올 때 뷰를 위로 쓱 올려서 가려지지 않게 하는 등..) - 제약 활성화 / 비활성화 - 제약의 상수 변경 - 제약의 우선도 변경 - 뷰 계층에서 제약 삭제 제약을 변경하면 레이아웃 엔진이 뷰프레임에 바로 업데이트 하는 것이 아니라 잠깐 뒤에 업데이트 한다. (너무 순식간이라 사실 사람 눈에는.. 안보인다. 뷰 업데이트 주기가 1/60초, 1/.. 2023. 4. 4.
고차함수 ( Higher-order Function)_ map, filter, reduce 스위프트에서 함수는 일급시민(일급객체_First Class Citizen)이기 때문에 함수의 파라미터로 전달 될 수 있고, 함수의 결과값으로 return 할 수도 있다. 고차함수는 함수를 파라미터로 쓰거나, 함수의 결과로 함수를 리턴하는 함수이다. (input과 output이 다 함수일 수 있음_함수는 일급시민이니까) 대표적인 고차함수에는(다른 언어에도 대부분 정의 되어 있음) map, filter, reduce, forEach, compactMap, flatMap이 있는데 먼저 기본인 map, filter, reduce에 대해 알아보고자 한다. 배열, 딕셔너리, 셋과 같은 컬렉션 타입에서 많이 쓰고 대부분 배열에서 자주 쓰는 경우가 많았다. map 시간복잡도 O(n) Returns an array co.. 2023. 4. 4.
0단계🐥 - 짝수의 합 고차함수를 활용할 수 있다. import Foundation func solution(_ n:Int) -> Int { (1...n).filter { $0 % 2 == 0}.reduce(0, +) // (1...n).filter { $0 % 2 == 0}.reduce(0) { $0 + $1 } } n이 정수이기 때문에 1부터 n까지 .filter를 활용해 짝수 배열을 만든다. (filter는 배열을 return하니) 해당 짝수배열에서 .reduce를 통해 합을 구한다. 주석 처리된 부분의 형태를 많이 접했었는데 .reduce(0, +)와 같이 연산자를 활용할 수도 있다. 2023. 4. 4.