2016-12-06 20 views
5

स्विफ्ट पैकेज प्रबंधक के लिए एप्पल के GitHub में वेस्विफ्ट में आयात func, struct, class, और @_exported क्या है?

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

source

का उपयोग वहाँ भी एक फ़ाइल जहां उस में केवल कोड @_exportedsource

@_exported import func libc.fileno 

यह एक स्विफ्ट है है 3 फीचर? मुझे कहीं भी नहीं मिल रहा है कि आप स्विफ्ट प्रलेखन में एक प्रकार आयात कर सकते हैं और @_exported पर कुछ भी नहीं।

उत्तर

9

आप केवल एक मॉड्यूल के एक विशिष्ट भाग आयात कर सकते हैं, नहीं एक पूरे मॉड्यूल:

और अधिक विस्तार की सीमा जो प्रतीकों कर रहे हैं प्रदान आयातित-आप एक मॉड्यूल या submodule के भीतर एक विशिष्ट submodule या एक विशिष्ट घोषणा निर्दिष्ट कर सकते हैं । जब इस विस्तृत रूप का उपयोग किया जाता है, केवल आयातित प्रतीक (और मॉड्यूल जो इसे घोषित नहीं करता है) वर्तमान दायरे में उपलब्ध कराया जाता है।

Import Declaration

से उदाहरण import func POSIX.isatty के लिए मॉड्यूल POSIX के बजाय पूरे मॉड्यूल POSIX (जो बड़े है) आयात करने से समारोह isatty आयात करेगा।

@_exported विशेषता अंडरस्कोर से शुरू होती है। इसका मतलब है कि यह एक निजी स्विफ्ट विशेषता है। एक सुविधा नहीं, एक कार्यान्वयन विस्तार। संक्षेप में, यह विशेषता आपको किसी अन्य मॉड्यूल से एक प्रतीक निर्यात करने देती है जैसे कि यह आपके मॉड्यूल से थी।

+0

इन सुविधाओं को स्विफ्ट 3 में जोड़ा गया था? – lostAtSeaJoshua

+1

@lostAtSeaJoshua नोप। मेरा मानना ​​है कि मॉड्यूल का सिर्फ एक हिस्सा आयात करना शुरुआत से ही स्विफ्ट में था। '@ _exported' मूल रूप से' @ निर्यात किया गया था 'लेकिन फिर भी यह अनियंत्रित कार्यान्वयन विवरण था। – Sulthan

+0

इसका क्या फायदा है? तेज संकलन के समय? – Kdawgwilk

संबंधित मुद्दे