클레스가 구조체보다 지원하는 기능이 많음

공통지원

프로퍼티, 메소드 ,서브스크립트, 초기화 블록, 확장, 프로토콜

클래스만

상속, 타입케스팅, 소멸자, 참조에 의한 전달

정의부

//구조체
Struct 구조체이름{
	
}
//클래스
Struct 클래스이름{
}

이름짓기 규칙(낙타표기 법)

  1. 첫 글자 대문자 나머지 소문자
  2. 2개 이상 복합 단어인경우 단어별로 끊어 첫 글자는 대문자로 ⇒TableViewController
  3. 이미 축약된 단어는 모두 대문자로 작성 ⇒ JSON,NS,HTTP
  4. 프로퍼티나 메소트는 소문자로 시작 ⇒getName
  5. 언더바로 단어 연결 방식은 지양한다.

메소드와 프로퍼티

프로퍼티(property) : 클레스/구조체 내부에서 정의된 상수나 변수

메소드(method): 클래스내에서 정의된 함수

struct Resolution{
	//프로퍼티
	var widt=0
	var height=0

	//메소드
	func desc()->String{
		return "Resolution"
	}
}

class VideoMode{
	var interlaced = false
	var frameRate = 0.0
	var name : String?
	
	func desc() -> String{
		return "VideoMode"
	}
}