charm/bubbletea Go: पूर्ण गाइड उदाहरणों के साथ

शुरुआती लोगों के लिए ऑनलाइन Python प्रशिक्षक

Python आसानी से सीखें बिना सिद्धांत के बोझ के। स्वचालित जांच के साथ व्यावहारिक कार्य हल करें और ब्राउज़र में सीधे कोड लिखें।

पाठ्यक्रम शुरू करें

charm/bubbletea Go: पूर्ण गाइड उदाहरणों के साथ

1. यह क्या है और क्यों ज़रूरी है

Bubble Tea Go भाषा में टर्मिनल यूज़र इंटरफ़ेस (TUI) बनाने के लिए एक शक्तिशाली, सुंदर और प्रभावी फ्रेमवर्क है। Elm के फंक्शनल प्रोग्रामिंग आर्किटेक्चर से प्रेरित होकर, यह तीन मुख्य अवधारणाओं पर आधारित एक सरल लेकिन अविश्वसनीय रूप से लचीला मॉडल प्रदान करता है: Model (स्थिति), Update (अपडेट फंक्शन) और View (डिस्प्ले फंक्शन)।

Bubble Tea का उपयोग क्यों करें? अगर आप उबाऊ, एक-लाइनर CLI टूल्स से ऊब चुके हैं और टर्मिनल में ही इंटरैक्टिव, आकर्षक और तेज़-प्रतिक्रिया वाले ऐप बनाना चाहते हैं, तो यह आपका टूल है। Bubble Tea से आप साधारण इनपुट फॉर्म और लिस्ट से लेकर जटिल फ़ाइल मैनेजर, म्यूज़िक प्लेयर, गेम और मॉनिटरिंग पैनल तक सब कुछ बना सकते हैं। यह टर्मिनल के सभी निचले स्तर के काम (सिग्नल हैंडलिंग, कर्सर कंट्रोल, रेंडरिंग) को संभाल लेता है, जिससे डेवलपर ऐप के लॉजिक पर ध्यान केंद्रित कर सकता है।

यह लाइब्रेरी Charm इकोसिस्टम का हिस्सा है, जिसमें Bubbles (टेक्स्ट फील्ड, स्पिनर, प्रोग्रेस बार जैसे तैयार कंपोनेंट्स) और Lip Gloss (आउटपुट स्टाइल करने की लाइब्रेरी) जैसे अन्य उपयोगी टूल्स शामिल हैं। ये सब मिलकर प्रोफेशनल TUI ऐप बनाने का पूरा सेट बनाते हैं।

2. इंस्टॉलेशन

लाइब्रेरी को Go के मानक तरीके से इंस्टॉल करें:

go get github.com/charmbracelet/bubbletea@latest

तैयार कंपोनेंट्स (विजेट्स) के लिए bubbles पैकेज भी इंस्टॉल करें:

go get github.com/charmbracelet/bubbles@latest

और स्टाइलिंग के लिए:

go get github.com/charmbracelet/lipgloss@latest

3. त्वरित शुरुआत — न्यूनतम कार्यशील उदाहरण

main.go फ़ाइल बनाएं और नीचे दिया गया कोड डालें। यह ऐप कीबोर्ड प्रेस की गिनती दिखाएगा। बाहर निकलने के लिए Ctrl+C दबाएं।

package main

import (
    "fmt"
    "os"
    tea "github.com/charmbracelet/bubbletea"
)

// 1. Model — ऐप की स्थिति स्टोर करता है।
type model struct {
    count int
}

// 2. Init — शुरुआती कमांड लौटाता है (आमतौर पर nil)।
func (m model) Init() tea.Cmd {
    return nil
}

// 3. Update — आने वाले मैसेज को प्रोसेस करता है और नया मॉडल व कमांड लौटाता है।
func (m model) Update(msg tea.Msg) (tea.Model, tea.Cmd) {
    switch msg := msg.(type) {
    case tea.KeyMsg:
        switch msg.String() {
        case "ctrl+c":
            return m, tea.Quit // बाहर निकलने का कमांड
        default:
            m.count++
            return m, nil
        }
    }
    return m, nil
}

// 4. View — टर्मिनल में दिखाई जाने वाली स्ट्रिंग लौटाता है।
func (m model) View() string {
    return fmt.Sprintf("कुंजी दबाने की संख्या: %d\n\nकोई भी कुंजी दबाएं। बाहर निकलने के लिए Ctrl+C दबाएं।", m.count)
}

func main() {
    p := tea.NewProgram(model{})
    if _, err := p.Run(); err != nil {
        fmt.Printf("त्रुटि: %v", err)
        os.Exit(1)
    }
}

ऐप चलाएं:

go run main.go

4. मुख्य तरीके और प्रकार

Bubble Tea में क्लासेस के बजाय इंटरफ़ेस और फंक्शन मुख्य हैं। आइए 8 मुख्य तत्वों को देखें।

4.1. tea.NewProgram

सिग्नेचर: func NewProgram(

अनुशंसाएँ