본문 바로가기
앱/iOS(Swift)

[Swift] 스위프트란 무엇인가

by 리드맥 2022. 1. 12.

스위프트

  • 미국 애플 회사가 iOS(Internetwork Operating System) 와 오에스텐(OS X)프로그래밍을 위해 개발한 프로그래밍 언어이다. 아이폰 앱 개발을 위한 기존 오브젝티브-C언어와 공존할 목적으로 만들었다
  • Object-C
    • 과거 iOS나 OS X 앱을 개발 하기 위해서 사용한 언어이다. 기존 C언어에 객체지향의 성격을 섞은 언어이다
  • 스위프트는 Object-C 에서 C언어의 특성을 줄이고 객체지향 언어ㅢ 성격을 강화한 언어이다
  • 특징
    • 사용이 간편한 오픈소스이다
    • 프로그램 사용자의 문법적 실수를 줄이는 구문들이 존재하기 때문에 안전하게 프로그래밍을 구현할 수 있다
    • Object-C보다 수행능력이 빠르다. 실행 속도의 최적화와 컴파일러의 지속한 개량을 ㄷ통해 더욱 빠른 컴파일 성능을 구현해 나가고 있다
    • C, C++, Java등과 달리 함수형 프로그래밍 패러다임, 프로토콜 지향 프로그래밍(특정 기능에 필요한, 메소드, 프로퍼티등을 정의만 해놓은것 ex)Java Interface) 패러다임이다
  • 프로토콜 정의

1) a 프로토콜 정의

protocol a {
	var topic: string{get set}
    func talk(b : Self)
    }
  

2) a프로토콜을 채택한 구조체 정의

 struct Person: a{
   var topic: String
   var name: String
   func talk(to: Person){
  	print("\(topic)에 대해서 \(b.name)과 말합니다")
  }
 }

3) 프로토콜의 메소드 호출

  let lee = Person(topic: "BMW", name:"lee")
  let kim = Person(topic: "Audi", name:"lee")
  lee.talk(to:kim)

4) 모듈화

protocol a {
	var topic: string{get set}
   func talk(b : Self)
   }
    protocol b {
	func b1()
   }
    protocol c {
	func c1()
   }
   }
   struct Person: a, b, c{
  var topic: String
  var name: String
  func talk(to: Person){
 	print("\(topic)에 대해서 \(b.name)과 말합니다")
   
   func b1(){}
   func c1(){}
 }
}
   

프로토콜 초기구현 하는법

extention a{
	func:talk(to: Self){
   	~~~~~~~~~~~
       }
}

댓글