2016-12-06 3 views
5

그들은 그것의 유일한 코드 @_exportedsourceSwift에서 import func, struct, class 및 @_exported는 무엇입니까? 스위프트 패키지 관리자에 대한 애플의 GitHub의에서

@_exported import func libc.fileno 

이 신속가있는 파일도 있습니다

import func POSIX.isatty 
import func libc.strerror_r 
import var libc.EINVAL 
import var libc.ERANGE 
import struct PackageModel.Manifest 

source

사용 3 기능? Swift 설명서에서 유형을 가져올 수있는 곳은 어디에도 없으며 @_exported에는 아무 것도 없습니다.

답변

9

당신은 모듈의 특정 부분을 가져올 수 없습니다 전체 모듈 :

상징이되어 더 자세히 제한 제공하는 수입을 - 당신은 모듈 또는 서브 모듈 내의 특정 서브 모듈 또는 특정 선언을 지정할 수 있습니다 . 이 세부 양식을 사용하면 가져온 기호 (현재 선언 된 모듈이 아님) 만 현재 범위에서 사용할 수 있습니다. 예를 들어 import func POSIX.isattyImport Declaration

가입일

모듈 POSIX 대신에 (큰) 전체 모듈 POSIX의 수입을 isatty 기능을 가져올 것이다.

@_exported 속성은 밑줄로 시작됩니다. 이는 개인 스위프트 속성이라는 것을 의미합니다. 기능이 아니라 구현 세부 사항입니다. 간단히 말해,이 속성을 사용하면 다른 모듈의 심볼을 모듈에서 가져온 것처럼 내보낼 수 있습니다.

+0

이 기능은 Swift 3에 추가 되었습니까? – lostAtSeaJoshua

+1

@lostAtSeaJoshua Nope. 처음부터 모듈의 일부만 가져 오는 것이 Swift에 있다고 생각합니다. '@exported'는 원래'@exported'되었지만 여전히 문서화되지 않은 구현 세부 사항입니다. – Sulthan

+0

이 기능의 장점은 무엇입니까? 더 빠른 컴파일 시간? – Kdawgwilk