মূল কন্টেন্টে যান
মডিউল 3 · 1-এর পাঠ 5কোর্সে 11/50~10 min
মডিউল পাঠ (1/5)

স্বাক্ষর এবং পরামিতি

Go-তে, ফাংশনগুলিকে func দিয়ে ঘোষণা করা হয়। স্বাক্ষর সিনট্যাক্স ভিন্ন C/Java থেকে: প্রকারটি পরামিতির নামের পরে যায়, a দ্বারা পৃথক করা হয় স্থান এটি এমন একটি পছন্দ যা উচ্চস্বরে ভালোভাবে পড়তে পারে — পরিবর্তে "এন অফ টাইপ int" এর "int n"।

মৌলিক সিনট্যাক্স

Go
func sum(a int, b int) int {
    return a + b
}

func greet(name string) {
    fmt.Println("ciao", name)
}

কোনো রিটার্ন মান ছাড়াই একটি ফাংশন কেবল রিটার্ন টাইপ বাদ দেয়।

একই ধরনের পরপর পরামিতি

যদি একাধিক পরামিতি একই ধরনের ভাগ করে, আপনি ঘোষণা করতে পারেন এটা শেষ এক মাত্র একবার. এটি বাজে এবং আপনি এটি সর্বত্র দেখতে পাবেন:

Go
func sum(a, b int) int { return a + b }
func max3(a, b, c float64) float64 { /* ... */ }
func parse(s, sep string, limit int) []string { /* ... */ }

রপ্তানি বনাম অরপ্তানিকৃত ফাংশন

Go-তে, দৃশ্যমানতা নামের দ্বারা নির্ধারিত হয়: শনাক্তকারীরা শুরু হয় একটি বড় হাতের অক্ষর সহ রপ্তানি করা হয় (অন্যান্য প্যাকেজ থেকে দৃশ্যমান), অন্যগুলো প্যাকেজের ব্যক্তিগত।

Go
func Sum(a, b int) int { ... }    // esportata
func helper() { ... }              // privata al package

মান হিসাবে ফাংশন

ফাংশনগুলি হল প্রথম-শ্রেণীর মান: আপনি সেগুলি বরাদ্দ করতে পারেন, পাস করতে পারেন এবং৷ তাদের ফিরিয়ে দাও। আমরা বন্ধের পাঠে আরও গভীরে খনন করব।

Go
op := sum            // op ha tipo func(int, int) int
fmt.Println(op(2, 3)) // 5

main এবং init: দুটি বিশেষ নাম

  • func main() হল main প্যাকেজের প্রবেশ বিন্দু৷ কোন তর্ক নেই, কোন রিটার্ন মান।
  • func init() প্যাকেজ স্টার্টআপে স্বয়ংক্রিয়ভাবে কল করা হয় (এমনকি একাধিক বার যদি একাধিক ফাইল একটি সংজ্ঞায়িত করে)। সেটআপের জন্য দরকারী; অল্প পরিমাণে এটি ব্যবহার করুন।

চেষ্টা করে দেখুন

ব্যায়াম#go.m3.l1.e1
প্রচেষ্টা: 0লোড হচ্ছে...

একটি ফাংশন যোগফল (a, b int) int সংজ্ঞায়িত করুন যা a+b প্রদান করে, তারপর এটিকে (3, 4) দিয়ে মেইন কল করুন।

সম্পাদক লোড হচ্ছে...
ইঙ্গিত দেখান

ভাগ করা প্রকার: `(a, b int)`৷ প্রত্যাবর্তনের ধরন বন্ধনীর পরে যায়।

সমাধান 3 প্রচেষ্টার পরে উপলব্ধ

ব্যায়াম#go.m3.l1.e2
প্রচেষ্টা: 0লোড হচ্ছে...

greet (নাম স্ট্রিং) (কোনও রিটার্ন মান নেই) সংজ্ঞায়িত করুন যা 'ciao <name>' প্রিন্ট করে।

সম্পাদক লোড হচ্ছে...
ইঙ্গিত দেখান

কোন রিটার্ন টাইপ যদি ফাংশন কিছুই রিটার্ন না করে।

সমাধান 3 প্রচেষ্টার পরে উপলব্ধ

Quiz#go.m3.l1.e3
প্রস্তুত

গো-তে প্যারামিটারের ধরন কোথায় যায়?

Go
func f(? ?) {}
উত্তরের বিকল্প

রিক্যাপ

  • func name(param type, ...) returnType { ... }
  • নামের পরে টাইপ করুন; একই ধরণের পরপর পরামিতি → এটি একবার ঘোষণা করে।
  • বড় হাতের আদ্যক্ষর = রপ্তানি করা; ছোট হাতের = প্যাকেজে ব্যক্তিগত।
  • ফাংশন প্রথম শ্রেণীর (অর্পণযোগ্য, পাসযোগ্য)।
  • main এবং init বিশেষ শব্দার্থবিদ্যা সহ সংরক্ষিত নাম।