일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- jest
- 계명대 이종호
- Hitit
- queue
- 리액트 예제
- 호키스
- 개발자
- TDD
- IOS
- SWIFT
- 스위프트
- 개발
- 이종호
- 스벨트
- 자바스크립트 자료구조
- HTML
- 자바스크립트
- Svelte
- hokidoki
- react
- data structure
- 계명대
- javascript
- hokeys
- 호키도키
- 자료구조
- 자스민
- 힛잇
- 비동기
- 리액트
- Today
- Total
목록이종호 (64)
Dog foot print
클래스와 구조체 클래스와 구조체의 공통점 클래스와 구조체는 외형상 비슷한 부분이 많다. 프로퍼티 변수나 상수를 사용하여 값을 저장하는 프로퍼티를 정의할 수 있다. 메소드 함수를 사용하여, 기능을 제공하는 메소드를 정희 할 수 있다. 초기화 블록 init 메서드를 두어 객체를 원하는 상태로 설정해주는 초기화 블록을 정의 할 수 있다. 서브스크립트 속성값에 접근할 수 있는 방법을 제공하는 서브스크립트를 정의 할 수 있다. ex : get , set 확장 객체에 함수적 기능을 추가하는 확장(extends) 구문을 사용할 수 있다. 프로토콜 특정 형식의 함수적 표준을 제공하기 위한 프로토콜을 구현할 수 있다. 클래스와 구조체의 차이점 외형상 비슷한 점은 많지만 객체가 구조체보다 더욱 많은 기능 범위를 가지고 있..
클로져란 ? 보통 다른 프로그래밍 언어를 배울 때 Closure를 의미하는 것은 함수가 스코프가 유지 되었을 경우, 함수 내부에 있는 변수는 메모리에서 해제 되지 않는 것 을 의미하는데, 이는 소프트웨어 아키텍쳐 적인 의미의 클로져이다. swift에서의 클로져는 익명 함수 를 의미 합니다. 익명함수는 재사용 할 가능성이 적어 특정 코드 부분에서만 사용 되는 코드 집합으로, 콜백 패턴과 더불어 사용해서 함수 내부에 필요한 시기에 코드를 실행 할 수 있다는 장점이 존재합니다. 스위프트에는 다음과 같은 3개의 클로저 객체가 존재합니다. 전역 함수 이름이 있으며 주변 환경에서 캡처할 어떤 값도 없는 클로저 중첩 함수 이름이 있으며 자신을 둘러싼 함수로부터 값을 캡처할 수 있는 클로저 클로저 표현식 이름이 없으며..
값에 의한 전달 var x = 1; func add(x : Int){ x += 1; print(x) } add(x : x); //2 print(x); //1우리가 함수에 전달인자로 어떤 값을 전달하게 되면, 함수 내부에서 매개변수의 값을 증가를 시켜도, 전달인자로 전달한 변수나 상수는 값이 변하지 않는 것을 볼 수 있다. 이는 함수의 전달인자로 변수를 전달 하였을 때, 메모리 주소자체를 넘겨주는 것이 아닌 메모리 내부에 존재하는 값을 전달 하여, 매개변수에 할당 하였기 때문이다. 이를 값에 의한 전달이라 한다. 참조에 의한 전달 class Student{ var age : Int; var name : String; init(age : Int,name : String){ self.age = age; sel..
함수란 ? 독립적으로 실행 가능한 코드이다. 함수 정의 템플릿 func 함수이름 (매개변수명1 : 타입, 매개변수명2 : 타입) -> 반환 타입 { 실행내용 return 반환값 } 예시 코드 func sum(x : Int, y : Int) -> Int{ print("매개변수1 \(x) , 매개변수2 \(y)"); return x + y; } Note : 매개변수가 존재하지 않는다면 작성하지 않아도 된다. Note : return 하는 값이 존재하지 않다면, void 타입을 명시해주지 않아도 된다. 함수 식별자 func sum(x : Int, y : Int) -> Int{ print("매개변수1 \(x) , 매개변수2 \(y)"); print("매개변수명 x,y") return x + y; } func s..
옵셔널이란 ? 옵셔널의 개념은 쉽게 풀이하여, 값이 존재 할 수도 있고 없을 수도 있음을 표현한 자료형입니다. 다른 언어에서는 값이 없다는 표현으로 보통 null을 할당 하고는 하는데, 스위프트에서는 nil이라는 값으로 표현됩니다. Dictionary 자료형을 사용 할 때, 키로 해당 값에 접근 하게되면 optional객체로 감싸진 값들을 볼 수 있습니다. let country = ["korea" : "seoul"]; country["korea"] //Optional("seoul").이는 스위프트가 오류가 존재해서가 아닌, “korea”라는 키를 가진 value가 없을 수 도 있으니 바로 오류를 범하기 전에Optional 객체로 감싼 결과 입니다. 이 예시는 String을 Int형으로 변경 할 때도 발생..
Dictionary란 key와 값이 쌍으로 이루어진 집단 자료형이다. // [키 : 값] let countries = ["korea" : "seoul"]딕셔너리 제약 하나의 키는 하나의 데이터에만 연결되어야 한다. 하나의 딕셔너리에서 키는 중복될 수 없고, 만약 이를 중복으로 처리하면 해당 키의 값이 재 할당된다. any 타입을 이용해서, value 와 key의 타입 제한을 없앨 수 있지만 다른 이를 위해 값은 항상 같은 타입의 데이터가 할당 되어야 한다. 딕셔너리는 아이템의 순서를 보장해주지 않는다. 즉 늦게 할당한 A가 B보다 뒤에 있으리라는 보장이 없다. Key는 타입 제한이 없지만, 해당 클래스가 Hashable 프로토콜을 구현해야 한다. 딕셔너리 선언과 초기화 let d_1 = ["hi" : "..
Set이란 ? Array와 다르게 Set은 공통된 값을 배열내에 저장 할 수 없는 자료구조입니다. Array를 통해 Set을 구현 할 수도 있지만, 스위프트에서는 기본 집단 자료형으로 Set을 제공합니다. 선언 및 초기화 import UIKit let countrySet : Set= ["korea","korea","usa","japan","china"]; let nonset = ["korea","korea"]; //["usa", "korea", "china", "japan"] //["korea", "korea"]Set의 리터럴은 배열과 동일한 [] 대괄호를 사용한다. 그렇기에, 타입 어노테이션으로 Set을 표시하지 않는다면, 배열로 인식되게 된다. 다음은 집합을 생성하는 다양한 예제이다. let stri..
문자열 보간법 문자열 보간법은 문자열 사이에 문자열이 아니거나 문자열인 자료형을 넣어, 동적으로 문자열을 만들어주는 방법을 의미합니다. 먼저 스위프트 보간법을 보기 전에 문자열 을 합치는 방법에 대해서 먼저 보도록 하겠습니다. 문자열과 문자열 1> let hello = "hello" 2> let world = "world" print(hello+" "+world) // hello world 출력 문자열과 문자열을 합치는 가장 고전적인 방법은 더하기 연산자를 통해, 문자열 타입을 합쳐주는 것이다. 문자열과 비문자열 let name = "lee" let age = 28 print(name+" is "+String(age)+" years old" 문자열과 비문자열을 합치기 위해서는 비문자열을 String으로 ..