জুলিয়াতে কোনও ফাংশনের নাম রফতানি করা কি সমস্ত বিভিন্ন ফাংশনের সংস্করণ রফতানি করবে?


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
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.