Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 인터페이스
- 객체지향프로그래밍
- 이름
- DesignPattern
- 부스트코스
- interface
- 협업
- 문법
- fp
- 디자인패턴
- POP
- SWIFT
- 고차함수
- 함수형패러다임
- 개발자
- Swfit
- IOS
- CleanCode
- Solid
- 함수형프로그래밍
- OOP
- 의도
- protocol
- 개발
- 클린코드
- iOS프로그래밍
- 네이밍
- 클린소프트웨어
- 아이폰프로그래밍
- 의존성
Archives
- Today
- Total
밤에 쓴 코드
Swift) 구조체/변수/상수 본문
Struct : 구조체
struct Cat{
// 속성
let name : String
var age : UInt
// 실체화
init(name:String , age:UInt = 1){
self.name = name
}
// 동작
func howl(){
print(name+" 야옹")
}
}
- 객체를 만들기위해 추상화되어있는 점에서
class
와 유사합니다. - 유사한 두개가 존재한다는 것은 유사하지만 차이가 있고 , 각기 다른 목적으로 설계 되었다는 것을 의미합니다.
특징적인 차이
class
에서는 가능하지만struct
에서는 가능하지 않은 것상속 타입캐스팅 참조에 의한 전달
stack
- CPU가 스택 메모리를 효율적으로 구성하기 때문에 스택 변수를 읽고 쓰는 속도가 매우 빠릅니다.
- 스택에 저장할 수있는 변수의 크기에 제한
- 스택을 이해하는 핵심 은 함수가 종료 되면 모든 변수가 스택에서 팝 아웃된다는 것입니다.
- 스택 변수는 생성 된 함수가 실행되는 동안에 만 존재합니다.
heap
- 자동으로 관리되지 않고 CPU가 엄격하게 관리하지 않는 컴퓨터 메모리 영역
- 힙 메모리는 포인터 를 사용 하여 힙의 메모리에 액세스 해야하기 때문에 읽기와 쓰기가 약간 느립니다
struct
는 지역변수/매겨변수에 해당된다. - 자체가 값을 가지는 형태이므로 stack
영역에 저장이 된다.
class
는 인스턴스의 참조변수
는 stack
영역에 저장이 되나 , 실제 인스턴스
는 heap
영역에 저장이 된다,
let 과 var
let
,var
- 사용할 데이터를 메모리에 저장하고 나면 , 그 저장한 메모리주소를 저장하고 계속적으로 접근을 해야한다.
- 메모리주소를 개발자가 항상 기억할 수 없으므로 변수에 저장하고 사용한다.
- 쓰임새는 비슷하나 차이가 있다.
var
는 정의가 되고 , 수정이 될 수 있다는 것을 프로그램에 명시해 두기에 , 프로그램은 그에 따른 신경을 써야한다. 그에 따른 비용이 발생하기에 , 꼭 필요한 경우에만 사용하는 것이 좋다.
'Swift' 카테고리의 다른 글
Swift) POP - Protocol Oriented Programming (1) | 2019.04.25 |
---|---|
Swift) Extension - 익스텐션 (0) | 2019.04.25 |
Swift) 옵셔널 - Optional (0) | 2019.04.18 |
Swift) 프로토콜 - Protocol (0) | 2019.04.11 |
Swift) 열거형 - Enumeration (0) | 2019.04.05 |
Comments