Вход на сайт
Golang. Как найти нужный String ?
26 просмотров
Перейти к просмотру всей ветки
в ответ Феврунья Вчера, 19:01
на форуме подобные вещи можно уже не спрашивать, а вести диалог с помощником:
✅ 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/ # картинки, звуки