Julia Language
मॉड्यूल
खोज…
वाक्य - विन्यास
- मॉड्यूल मॉड्यूल; ...; समाप्त
- मॉड्यूल का उपयोग कर
- आयात मॉड्यूल
एक मॉड्यूल में कोड लपेटें
module
कीवर्ड का उपयोग एक मॉड्यूल शुरू करने के लिए किया जा सकता है, जो कोड को व्यवस्थित करने और नाम रखने की अनुमति देता है। मॉड्यूल एक बाहरी इंटरफ़ेस को परिभाषित कर सकते हैं, जिसमें आमतौर पर export
एड प्रतीक शामिल होते हैं। इस बाहरी इंटरफ़ेस का समर्थन करने के लिए, मॉड्यूल में आंतरिक कार्य नहीं हो सकते हैं और सार्वजनिक उपयोग के लिए इच्छित प्रकार नहीं हैं।
कुछ मॉड्यूल मुख्य रूप से एक प्रकार और संबंधित कार्यों को लपेटने के लिए मौजूद हैं। इस तरह के मॉड्यूल, सम्मेलन द्वारा, आमतौर पर प्रकार के नाम के बहुवचन रूप के साथ नामित किए जाते हैं। उदाहरण के लिए, यदि हमारे पास एक मॉड्यूल है जो Building
प्रकार प्रदान करता है, तो हम ऐसे मॉड्यूल Buildings
कह सकते हैं।
module Buildings
immutable Building
name::String
stories::Int
height::Int # in metres
end
name(b::Building) = b.name
stories(b::Building) = b.stories
height(b::Building) = b.height
function Base.show(io::IO, b::Building)
Base.print(stories(b), "-story ", name(b), " with height ", height(b), "m")
end
export Building, name, stories, height
end
मॉड्यूल का using
बयान के साथ किया जा सकता है:
julia> using Buildings
julia> Building("Burj Khalifa", 163, 830)
163-story Burj Khalifa with height 830m
julia> height(ans)
830
संकुल को व्यवस्थित करने के लिए मॉड्यूल का उपयोग करना
आमतौर पर, पैकेज में एक या अधिक मॉड्यूल होते हैं। जैसे-जैसे पैकेज बढ़ते हैं, पैकेज के मुख्य मॉड्यूल को छोटे मॉड्यूल में व्यवस्थित करना उपयोगी हो सकता है। एक सामान्य मुहावरा मुख्य मॉड्यूल के सबमॉड्यूल के रूप में उन मॉड्यूल को परिभाषित करना है:
module RootModule
module SubModule1
...
end
module SubModule2
...
end
end
प्रारंभ में, न तो रूट मॉड्यूल और न ही सबमॉड्यूल्स में एक दूसरे के निर्यात किए गए प्रतीकों तक पहुंच होती है। हालाँकि, इस समस्या को हल करने के लिए सापेक्ष आयात समर्थित हैं:
module RootModule
module SubModule1
const x = 10
export x
end
module SubModule2
# import submodule of parent module
using ..SubModule1
const y = 2x
export y
end
# import submodule of current module
using .SubModule1
using .SubModule2
const z = x + y
end
इस उदाहरण में, RootModule.z
का मान 30
।