खोज…


वाक्य - विन्यास

  • मॉड्यूल my.package;
  • आयात my.package;
  • आयात my.package: फ़ंक्शन;
  • आयात फैंसीनाम = mypackage;
  • my.package आयात करें: फैंसीफंक्शननाम = फ़ंक्शन;

टिप्पणियों

मॉड्यूल स्वचालित रूप से उनकी सामग्री के लिए एक नाम स्थान गुंजाइश प्रदान करते हैं। मॉड्यूल सतही कक्षाओं से मिलते-जुलते हैं, लेकिन इसमें भिन्न हैं:

  • प्रत्येक मॉड्यूल का केवल एक उदाहरण है, और यह सांख्यिकीय रूप से आवंटित किया गया है।
  • कोई वर्चुअल टेबल नहीं है।
  • मॉड्यूल विरासत में नहीं आते हैं, उनके पास कोई सुपर मॉड्यूल नहीं हैं, आदि।
  • प्रति फ़ाइल केवल एक मॉड्यूल।
  • मॉड्यूल प्रतीकों को आयात किया जा सकता है।
  • मॉड्यूल हमेशा वैश्विक दायरे में संकलित किए जाते हैं, और आसपास की विशेषताओं या अन्य संशोधक द्वारा अप्रभावित रहते हैं।
  • मॉड्यूल को पदानुक्रम में एक साथ समूहित किया जा सकता है जिसे संकुल कहा जाता है।

मॉड्यूल कई गारंटी प्रदान करते हैं:

  • जिस क्रम में मॉड्यूल आयात किए जाते हैं, वह शब्दार्थ को प्रभावित नहीं करता है।
  • एक मॉड्यूल के शब्दार्थ इसका आयात करने से प्रभावित नहीं होते हैं।
  • यदि कोई मॉड्यूल C, A और B को आयात करता है, तो B का कोई भी संशोधन C पर चुपचाप कोड नहीं बदलेगा जो A पर निर्भर है।

वैश्विक आयात

import std.stdio;
void main()
{
    writeln("Hello World!");
}

एकाधिक आयातों को या तो एक ही पंक्ति में निर्दिष्ट किया जा सकता है, एक comma साथ या एक नई पंक्ति में अलग किया जा सकता है।

import std.stdio, std.math;
import std.datetime;
void main()
{
    writeln("2^4: ", pow(2, 4));
    writeln("Current time: ", Clock.currTime());
}

चयनात्मक आयात

चयनात्मक आयात नामस्थान को साफ करने में मदद कर सकते हैं और संकलन-समय को और भी अधिक गति प्रदान कर सकते हैं, क्योंकि संकलक को केवल विशिष्ट, चयनित कार्यों को पार्स करने की आवश्यकता होती है।

import std.stdio: writeln;
void main()
{
    writeln("Hello world");
}

स्थानीय आयात

आप किसी भी दायरे में प्रतीकों को आयात कर सकते हैं, आयात केवल तब दिखाई देगा जब गुंजाइश की आवश्यकता होगी (यानी संकलित) और आयातित नाम केवल आयातित दायरे में उजागर किए जाएंगे। अधिकांश आम तौर पर स्थानीय आयात के लिए कार्य, संरचना और वर्ग हैं।

void main()
{
    import std.stdio: writeln;
    writeln("Hello world");
}
// writeln isn't defined here

सार्वजनिक आयात

मॉड्यूल public imports साथ अन्य मॉड्यूल के संपर्क में आ सकते हैं।

public import std.math;
// only exports the symbol 'pow'
public import std.math : pow;

आयात का नाम दिया

आयात के लिए एक स्थानीय नाम दिया जा सकता है, जिसके माध्यम से मॉड्यूल के प्रतीकों के सभी संदर्भों को योग्य होना चाहिए:

import io = std.stdio; 
void main()
{
    io.writeln("Hello world");
    std.stdio.writeln("hello!"); // error, std is undefined
    writeln("hello!");           // error, writeln is undefined
}

बहुत लंबे आयात नामों के साथ काम करते समय नामांकित आयात आसान है।

नामांकित और चयनात्मक आयात

चयनात्मक आयात का भी नाम बदला जा सकता है।

void main()
{
    import std.stdio : fooln = writeln;
    fooln("Hello world");
}

मॉड्यूल की घोषणा

मॉड्यूल में स्रोत फ़ाइलों के साथ एक-से-एक पत्राचार है। मॉड्यूल का नाम डिफ़ॉल्ट रूप से, पथ और एक्सटेंशन के साथ फ़ाइल नाम को हटा दिया जाता है, और मॉड्यूल घोषणा के साथ स्पष्ट रूप से सेट किया जा सकता है। ModuleDeclaration मॉड्यूल का नाम सेट करता है और यह किस पैकेज से संबंधित है। यदि अनुपस्थित है, तो मॉड्यूल नाम स्रोत फ़ाइल नाम का एक ही नाम (पथ और विस्तार से छीन लिया गया) हो सकता है।

module my.fancy.module;


Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow