क्या जूलिया में सभी अलग-अलग फ़ंक्शन संस्करणों में एक फ़ंक्शन नाम निर्यात किया जाएगा?


10

मेरे पास एक ही फ़ंक्शन नाम के लिए कई फ़ंक्शन / प्रेषण हैं। मैं यह सुनिश्चित करना चाहता हूं कि वे सभी निर्यात किए जाते हैं। क्या मुझे निर्यात विवरण में फ़ंक्शन का नाम शामिल करने की आवश्यकता है और फिर जूलिया को बाकी काम करना चाहिए?

उदाहरण:

function hello(a::Int64, b::Int64)
   #nothing
end

function hello(a::Bool, b::Bool)
   #nothing
end

export hello

क्या इन दोनों का निर्यात सिर्फ करने से होगा export hello?

जवाबों:


7

हां, आप फ़ंक्शन का नाम निर्यात करते हैं, और उस फ़ंक्शन में इस मामले में दो विधि हैं, और वे दोनों उपलब्ध होंगे।

और जोड़ने के लिए, विधियों का सबसेट निर्यात करने का कोई तरीका नहीं है।


5

ये सही है। दरअसल, exportबयान का कोई संस्करण नहीं है जो आपको निर्यात करने के लिए कौन सी विधि चुनने की अनुमति देगा । आप फ़ंक्शन निर्यात करें ।

यहाँ कुछ कोड है जो व्यवहार को दिखाता है:

julia> module FooBar
       export foo
       foo(x::Int) = 2
       foo(x::Char) = 'A'
       end
Main.FooBar

julia> foo
ERROR: UndefVarError: foo not defined

julia> @which foo
ERROR: "foo" is not defined in module Main
Stacktrace:
 [1] error(::String) at .\error.jl:33
 [2] which(::Module, ::Symbol) at .\reflection.jl:1160
 [3] top-level scope at REPL[15]:1

julia> using .FooBar

julia> @which foo
Main.FooBar

julia> methods(foo)
# 2 methods for generic function "foo":
[1] foo(x::Char) in Main.FooBar at REPL[13]:4
[2] foo(x::Int64) in Main.FooBar at REPL[13]:3
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.