본문 바로가기
반응형

공부95

[스위프트] 구조체(Struct)와 클래스(Class) - 공통점과 차이점 스위프트에는 다른 언어처럼 구조체와 클래스가 있다.이 둘은 공통적인 목적을 갖고 만들어졌다. 프로그램 소스코드의 추상화를 위해 사용하며다른 언어와는 다르게 인터페이스와 파일이 필요 없다.참고로 스위프트의 기본 데이터 타입은 모두 구조체로 이루어져 있다. 공통점• 프로퍼티를 정의할 수 있다.• 메서드를 정의할 수 있다.• 서브스크립트를 사용해(SomeClass.num같이) 프로퍼티에 접근할 수 있다.• 객체를 초기상태로 설정해 주는 초기화 블록 정의 가능• 객체에 함수적 기능 추가를 위한 확장(extends) 구문을 쓸 수 있다.• 특정 형식의 함수적 표준을 제공하기 위한 프로토콜 구현할 수 있다. 차이점구조체• 구조체는 값타입.• 값타입이기 때문에 구조체 변수를 새로운 변수에 할당할 때마다 새로운 구조체.. 2023. 8. 16.
[스위프트] 델리게이트 패턴 (delegate) 갑자기 목디스크가 와버린 바람에 아무것도 못하고 거의 누워서 지내다 이제 좀 살만해진거 같아서 다시 글을 쓰려고합니다. 아직도 좀 저릿한데 전에 비하면 이정도면 전에비해 정말 너무너무너무너무 괜찮아진거라 행복할 정도. 암튼 각설하고, 스위프트에는 델리게이트라는 개념이 있다. 최근 계속 ios 네이티브 앱개발을 공부하고 있는데(유데미 안젤라 강의를 듣는중) 델리게이트 패턴과 api에 대한 내용이 나오게 되었다. 앞부분까지는 솔직히 좀 어려울 부분이 크게 없기도 하지만(강의를 볼때 영어 이해하랴 화면보랴 해서 좀 힘들긴 하지만) 드디어 델리게이트 패턴에 도달을 해버린것. 문제는 강의를 어떻게 꾸역꾸역 듣긴했는데 이해가 안되는 상태에서 예시를 작성하려니 죽을맛이다. 델리게이트 패턴이 뭔가 중요한건 알겠는데 뭐.. 2023. 8. 6.
[스위프트] 클로저(Closures) 스위프트에서 클로저라는 기능은 일회용 함수를 작성할 수 있는 구문이다. 작성방식은 워낙에 다양하지만 일회용으로 함수를 작성하다 보니 함수명이 필요 없어 익명함수라고 부르기도 한다. 클로저는 이미 다른 언어들에도 존재하는 기능인데, 다른 언어에서는 다음과 같이 부른다. 자바스크립트 - 익명함수 자바 - 람다함수 파이썬 - 람다함수 아마 대충 어떤 내용이 나올지 예상이 될 것이다. 원래 클로저 자체는 세 가지를 의미한다. • 전역함수 • 중첩함수 • 클로저 표현식 여기서 살펴볼 내용은 클로저 표현식에 중점을 둘 것이다. 클로저의 표현식 우선 클로저는 기본적으로 함수이기 때문에 함수의 기본적인 형태를 따르나 일회용이기 때문에 많은 부분이 생략된다. 차차 알아가 보자. //기본적인 형식 { (매개변수) -> 반.. 2023. 7. 10.
[스위프트] defer(디퍼) 스위프트에는 defer라는 구문이 있다. 앞서 얘기한 흐름 제어 구문중 하나인데 스위프트에 있는 특이한 기능중 하나이다. defer는 "연기하다"라는 뜻을 가진 단어로 이를 생각해보면 defer구문의 기능이 무엇일지 예상이 될 것이다. 바로 일부 기능을 지연시키고자 할때 쓰는 구문이다. 하지만 이는 몇초를 지정한다던가 이런게 아니다. defer는 if나 for처럼 블럭으로 작성한다. defer는 다음과 같은 특징들을 갖는다. • defer 블럭은 defer가 들어가있는 블럭에서 가장 마지막에 실행된다.(return 이후에 실행된다.) • 만약 defer블럭을 지나지 않고 return이 실행되면 defer는 실행되지 않는다. • defer블럭이 여러개가 있다면 마지막 defer블럭부터 거꾸로 실행된다. •.. 2023. 7. 10.
[스위프트] 함수(파트3) 파트 3에서 설명할 것은 좀 어렵다. 스위프트는 함수형 언어이다. 이를 설명하기 위해 우선 일급 객체에 대해서 알아보자. 일급 객체 객체가 다음의 조건을 만족하면 해당 객체를 일급 객체로 간주한다. 객체가 런타임에도 생성이 가능해야 한다. 인자값으로 객체를 전달할 수 있어야 한다. 반환값으로 객체를 사용할 수 있어야 한다. 변수나 데이터 구조 안에 저장할 수 있어야 한다. 할당에 사용된 이름과 관계없이 고유한 구별이 가능해야 한다. 일단은 함수도 객체이므로 위의 조건들을 함수가 만족할 경우 일급함수(First-Class Function라고 한다. 또한 해당 언어는 함수형 언어로 분류된다. 그래서 스위프트가 함수형 언어인 것이다. 이제부터 일급함수의 특성을 알아보자. 일급함수의 특성 (1) - 변수나 상수.. 2023. 7. 10.
[스위프트] 함수(파트1) 함수 대부분의 언어에서 지원하는 기능으로, 프로그램 실행시에 독립적으로 작동할 수 있는 부분을 분리해 구조화한 객체이다. 일종의 캡슐화라고도 할 수 있겠다. 이렇게 작성된 함수는 어디서든 간단하게 호출해 사용할 수 있다. 그래서 같은 내용으로 실행되야 한다면 여러번 작성할 필요없이 호출을 통해 같은 소스를 실행할 수 있다. 함수의 종류 함수는 일반 함수와 사용자 정의 함수로 나눠진다. • 일반함수 : 프로그래밍 언어나 프레임워크에서 제공하는 함수. 예시)print, isEmpty등등 • 사용자 정의 함수 : 일반 함수에서 제공하지 않아 사용자가 함수의 입력과 출력, 실행될 구문을 직접 정의해 만드는 함수. 예시)로그인 정보를 받을 시 수행될 내용. 사용자 정의 함수 앞서 말했듯 일반 함수에는 간단한 기능.. 2023. 7. 9.
반응형