Elixir Language
प्रोटोकॉल
खोज…
टिप्पणियों
स्ट्रक्चर्स पर एक नोट
नक्शे के साथ प्रोटोकॉल कार्यान्वयन को साझा करने के बजाय, संरचनाओं को अपने प्रोटोकॉल कार्यान्वयन की आवश्यकता होती है।
परिचय
प्रोटोकॉल एलिक्सिर में बहुरूपता को सक्षम करते हैं। defprotocol
साथ प्रोटोकॉल को परिभाषित करें:
defprotocol Log do
def log(value, opts)
end
एक प्रोटोकॉल को defimpl
लागू करें:
require Logger
# User and Post are custom structs
defimpl Log, for: User do
def log(user, _opts) do
Logger.info "User: #{user.name}, #{user.age}"
end
end
defimpl Log, for: Post do
def log(user, _opts) do
Logger.info "Post: #{post.title}, #{post.category}"
end
end
उपरोक्त कार्यान्वयन के साथ, हम कर सकते हैं:
iex> Log.log(%User{name: "Yos", age: 23})
22:53:11.604 [info] User: Yos, 23
iex> Log.log(%Post{title: "Protocols", category: "Protocols"})
22:53:43.604 [info] Post: Protocols, Protocols
प्रोटोकॉल आपको किसी भी डेटा प्रकार को भेजने की अनुमति देते हैं, इसलिए जब तक यह प्रोटोकॉल को लागू करता है। इसमें कुछ अंतर्निहित प्रकार जैसे कि Atom
, BitString
, Tuples
और अन्य शामिल हैं।
Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow