2016-12-06 13 views
5

onlar sadece kod @_exportedsourceSwift'de import func, struct, class ve @_exported nedir? Swift Paketi yöneticisi için Apple'ın github olarak

@_exported import func libc.fileno 

bu Swift mi bir dosya da vardır

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

source

kullanmak 3 özellik? Swift belgelerinde bir tür alabildiğiniz hiçbir yer bulamıyorum ve @_exported numaralı telefondan hiçbir şey bulamıyorum.

cevap

9

Bir modülün sadece belirli bir kısmını alabilir değil, bir bütün modülü:

sembolleri vardır fazla detay sınırlarını sağlanması ithal-Bir modül veya alt modülde belirli submodule veya belirli bir deklarasyon belirtebilirsiniz . Bu ayrıntılı form kullanıldığında, sadece ithal edilen sembol (ve bunu bildiren modül değil) mevcut kapsamda kullanılabilir hale getirilir. Örneğin import func POSIX.isatty için Import Declaration

itibaren

modülünün POSIX yerine (BÜYÜK) bütün modülü POSIX ithal gelen işlevi isatty ithal edecek.

@_exported özniteliği bir alt çizgi ile başlar. Bu özel bir Swift özniteliği demektir. Bir özellik değil, bir uygulama detayı. Kısacası, bu özellik başka bir modülden bir simgeyi, modülünüzdeymiş gibi vermenize izin verir.

+0

Swift 3'te bu özellikler eklendi? – lostAtSeaJoshua

+1

@lostAtSeaJoshua Nope. Modülün sadece bir parçasını ithal etmenin en başından beri Swift'de olduğuna inanıyorum. '@exported' orijinal olarak' exported' idi ancak yine de belgelenmemiş uygulama detayıydı. – Sulthan

+0

Bunun faydaları nelerdir? Daha hızlı derleme süreleri? – Kdawgwilk

İlgili konular