Deutsch

Golang. Как найти нужный String ?

Вчера, 19:14
Re: Golang. Как найти нужный String ?
 
AlexNek патриот
AlexNek

на форуме подобные вещи можно уже не спрашивать, а вести диалог с помощником:

✅ 1. Как сравнить andare[0] == wahl1

В Go массивы и срезы (slice) работают просто. Чтобы сравнить первый элемент массива со строкой wahl1, достаточно:

if andare[0] == wahl1 {
    fmt.Println("Вы выбрали глагол andare")
}

Но ваш код не компилируется, потому что переменные avere, essere, andare не объявлены. Нужно использовать := или var:

avere := [14]string{...}
essere := [14]string{...}
andare := [14]string{...}

Или лучше — использовать map:

verbs := map[string][14]string{
    "avere":  {...},
    "essere": {...},
    "andare": {...},
}

Тогда можно легко обращаться:

if val, ok := verbs[wahl1]; ok {
    fmt.Println("Вы выбрали:", val[0])
}

📦 2. Как лучше хранить ~100 слов

Для небольшого количества слов можно:

🔹 Вариант A: JSON-файл

Создайте файл vocab.json:

{
  "avere": ["avere", "ho", "hai", ...],
  "essere": ["essere", "sono", "sei", ...]
}

И загрузите его в Go:

import (
    "encoding/json"
    "os"
)

var verbs map[string][]string

file, _ := os.ReadFile("vocab.json")
json.Unmarshal(file, &verbs)

🔹 Вариант B: SQLite

Если хотите расширяться — используйте SQLite с библиотекой mattn/go-sqlite3. Это даст гибкость: фильтрация, сортировка, статистика.


🖱️ 3. Как сделать GUI с кнопками и окнами

🔸 Для Windows:

  • Используйте Fyne — кроссплатформенный GUI-фреймворк на Go.
  • Пример:
package main

import (
    "fyne.io/fyne/v2/app"
    "fyne.io/fyne/v2/widget"
)

func main() {
    a := app.New()
    w := a.NewWindow("Vokabeltrainer")

    entry := widget.NewEntry()
    button := widget.NewButton("Suchen", func() {
        fmt.Println("Вы ввели:", entry.Text)
    })

    w.SetContent(widget.NewVBox(entry, button))
    w.ShowAndRun()
}

🔸 Для Android:

  • Go не поддерживает Android напрямую, но можно:
    • Написать backend на Go и frontend на Kotlin/Java.
    • Или использовать gomobile (ограничено).
    • Альтернатива: сделать Web-приложение на Go + HTML/JS и открыть его в WebView на Android.

💡 Бонус: структура проекта

vokabeltrainer/
├── main.go
├── vocab.json
├── gui/         # если используете Fyne
├── db/          # если используете SQLite
└── assets/      # картинки, звуки

 

Перейти на