গো ল্যাঙ্গুয়েজ টিউটোরিয়ালে, তারা ব্যাখ্যা করে যে ইন্টারফেসগুলি কীভাবে কাজ করে:
গো ক্লাস নেই। তবে, আপনি স্ট্রাক্টের ধরণের পদ্ধতিগুলি নির্ধারণ করতে পারেন। পদ্ধতি রিসিভার func শব্দ এবং পদ্ধতি নাম মধ্যে নিজস্ব যুক্তি তালিকা প্রদর্শিত হবে।
type Vertex struct {
X, Y float64
}
func (v *Vertex) Abs() float64 {
return math.Sqrt(v.X*v.X + v.Y*v.Y)
}
একটি ইন্টারফেস টাইপ পদ্ধতির একটি সেট দ্বারা সংজ্ঞায়িত করা হয়। ইন্টারফেস প্রকারের মান এমন কোনও মান ধরে রাখতে পারে যা এই পদ্ধতিগুলি প্রয়োগ করে।
গোয়ে ইন্টারফেস তৈরির একমাত্র উপায় এটি। গুগল আরও ব্যাখ্যা করে যে:
একটি পদ্ধতি পদ্ধতি প্রয়োগ করে একটি ইন্টারফেস প্রয়োগ করে। অভিপ্রায় (অর্থাত্
interface
ঘোষণা) এর স্পষ্ট ঘোষণা নেই ।অন্তর্নির্মিত ইন্টারফেসগুলি ইন্টারফেসগুলি সংজ্ঞায়িত করে এমন প্যাকেজগুলি থেকে বাস্তবায়ন প্যাকেজগুলি ডিকুয়াল করে: অন্যটির উপরও নির্ভর করে না।
এটি সুনির্দিষ্ট ইন্টারফেসগুলির সংজ্ঞাটিকেও উত্সাহিত করে, কারণ আপনাকে প্রতিটি বাস্তবায়ন খুঁজে পেতে এবং নতুন ইন্টারফেসের নাম দিয়ে এটি ট্যাগ করতে হবে না।
এই সমস্ত সন্দেহজনকভাবে সি # তে এক্সটেনশন পদ্ধতিগুলির মতো শোনাচ্ছে , গোতে থাকা পদ্ধতিগুলি নির্মমভাবে বহুরূপী হিসাবে ব্যতীত; তারা প্রয়োগ করে যে কোনও প্রকারে operate
গুগল দাবি করেছে যে এটি দ্রুত বিকাশকে উত্সাহিত করে, তবে কেন? আপনি কি সি # তে সুস্পষ্ট ইন্টারফেস থেকে দূরে সরে গিয়ে কিছু ছেড়ে দেন? সি # তে এক্সটেনশন পদ্ধতিগুলি কি গো ইন্টারফেসের সি # তে থাকা কিছু সুবিধা অর্জনের অনুমতি দিতে পারে?