"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > गोलांग संरचनाएँ

गोलांग संरचनाएँ

2024-11-08 को प्रकाशित
ब्राउज़ करें:534

GoLang Structs

गोलंग में, संरचनाएं डेटा के लिए सरल कंटेनर हैं।

  • फ़ील्ड हो सकते हैं
  • उनके साथ कोई विधियां संलग्न नहीं हैं
    • विधियों को अलग से परिभाषित किया गया है और एक संरचना प्रकार से संबद्ध किया गया है।

निम्नलिखित रूबी और गोलैंग में एक सरल बुक क्लास समकक्ष दिखाता है।

class Book
  attr_reader(:title, :author)

  def initalize(title, author)
    @title  = title
    @author = authoer
  end
end

# usage
book = Book.new('Title', 'Jon Snow')
// Equivalent to `class Book` in ruby
type Book struct {
  Title string,
  Author string
}

GoLang प्रकार को त्वरित करना

समग्र शाब्दिक

कंपोजिट लिटरल एक चरण में आरंभिक कंपोजिट प्रकार बनाने के लिए सिंटैक्स है। हम निम्नलिखित प्रकारों को त्वरित कर सकते हैं:

  • संरचनाएं
  • सरणी
  • स्लाइस
  • मानचित्र

यहां हम वेरिएबल बुक को एक नया बुक इंस्टेंस असाइन कर रहे हैं

// Composite Literal
book := Book{
  Title: "Title",
  Author: "Author"
}

नए कीवर्ड का उपयोग करना

लंबा फॉर्म नए कीवर्ड का उपयोग करना है। यह उसी तरह होगा जैसे हम रूबी में Book = Book.new(..)

के साथ एक क्लास शुरू करते हैं।

हम = चिह्न का उपयोग करके पुस्तक की विशेषताओं (अर्थात् शीर्षक और लेखक) को निर्दिष्ट करेंगे।

// Using the `new` keyword
book        := new(Book)
book.Title  = "Book Title"
book.Author = "John Snow"

लघु परिवर्तनीय घोषणा के बिना (:=)

ध्यान दें कि हमने पहले उदाहरण में := प्रतीक का उपयोग किया था?

यह एक चर घोषित करने और उसे एक मान निर्दिष्ट करने के निम्नलिखित क्रियात्मक तरीके के लिए वाक्यात्मक चीनी है।

// Without Short Virable Declaration

// Example 1
var book Book // Declare variable `book` of type `Book`
book.Title = "Book Title" // Assign the value to book variable
book.Author = "John Snow"

// Example 2
var count int
count = 20

फ़ैक्टरी फ़ंक्शन

जब हमें आवश्यकता हो तो संरचना को आरंभ करते समय इसे आसान बनाने के लिए हम फ़ैक्टरी पैटर्न का भी उपयोग कर सकते हैं:

  • अतिरिक्त तर्क जोड़ें
  • डिफ़ॉल्ट मान जोड़ें

यह मानते हुए कि हम पुस्तक के शीर्षक के प्रत्येक प्रथम अक्षर और लेखक टोकन को बड़े अक्षरों में लिखना चाहेंगे।

// Factory Function
func NewBook(title string, author string) Book {
  return Book{
    Title: titlelise(title), // default logic to "titlelise" 
    Author: titlelist(author)
  }
}

func titlelise(str string) {
  caser := cases.Title(lanaguage.English)
  return caser.String(str)
}

किसी फ़ंक्शन को किसी संरचना से जोड़ना

रूबी में, हम बस क्लास के भीतर एक फ़ंक्शन को परिभाषित करेंगे। यहां, हम पुस्तक शीर्षक नाम लेखक को मुद्रित करने के लिए to_string() नामक एक फ़ंक्शन को परिभाषित कर रहे हैं।

class Book
  attr_reader(:title, :author)

  def initalize(title, author)
    @title  = title
    @author = authoer
  end

  # new function we added
  def to_string()
    put "#{title} by #{string}"
  end
end

GoLang में, हम फ़ंक्शन को स्टक्ट में पास करके फ़ंक्शन को "संलग्न" करेंगे।

// Equivalent to `class Book` in ruby
type Book struct {
  Title string,
  Author string
}

// Attaching the function to the `struct`
func (book Book) ToString() string {
  return fmt.Sprintf("%s by %s", book.Title, book.Author)
}

// Usage
book := Book{
  Title: "Title",
  Author: "Author"
}

book.ToString()
// => Title by Author

का स्पष्टीकरण:

func (book Book) ToString() string
टोकन विवरण
func फ़ंक्शन कीवर्ड
(पुस्तक पुस्तक) फ़ंक्शन को बुक स्ट्रक्चर प्रकार से जोड़ना
- बुक: फ़ंक्शन के भीतर संरचना तक पहुंचने के लिए वेरिएबल
- बुक: संरचना का प्रकार
स्ट्रिंग() फ़ंक्शन का नाम
डोरी फ़ंक्शन का रिटर्न प्रकार
विज्ञप्ति वक्तव्य यह आलेख यहां पुन: प्रस्तुत किया गया है: https://dev.to/nerdherd/golang-structs-3o0k?1 यदि कोई उल्लंघन है, तो कृपया इसे हटाने के लिए [email protected] से संपर्क करें।
नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3