From fc1b81d22a26f7009aad54f3a83ac8a5bb70eab7 Mon Sep 17 00:00:00 2001 From: Archie Fox Date: Fri, 28 Feb 2025 23:22:39 +0300 Subject: [PATCH] Maps and bookmarks app --- go-demo-3/main.go | 67 ++++++++++++++++++++++++++++++++++++------ go-demo-3/maps/main.go | 16 ++++++++++ 2 files changed, 74 insertions(+), 9 deletions(-) create mode 100644 go-demo-3/maps/main.go diff --git a/go-demo-3/main.go b/go-demo-3/main.go index 06cb75f..665981b 100644 --- a/go-demo-3/main.go +++ b/go-demo-3/main.go @@ -2,15 +2,64 @@ package main import "fmt" +type bookmarkMap = map[string]string + func main() { - m := map[string]string{ - "PurpleSchool": "https://purpleschool.ru", - } - m["Google"] = "https://google.com" - m["Gmail"] = "https://gmail.com" - fmt.Println(m) - delete(m, "Gmail") - for _, v := range m { - fmt.Println(v) + bookmarks := bookmarkMap{} + fmt.Println(bookmarks["a"]) + fmt.Println("Приложение для закладок") +Menu: + for { + variant := getMenu() + switch variant { + case 1: + printBookmarks(bookmarks) + case 2: + bookmarks = addBookmark(bookmarks) + case 3: + bookmarks = deleteBookmark(bookmarks) + case 4: + break Menu + } } } + +func getMenu() int { + var variant int + fmt.Println("Выберите вариант") + fmt.Println("1. Посмотреть закладки") + fmt.Println("2. Добавить закладку") + fmt.Println("3. Удалить закладку") + fmt.Println("4. Выход") + fmt.Scan(&variant) + return variant +} + +func printBookmarks(bookmarks bookmarkMap) { + if len(bookmarks) == 0 { + fmt.Println("Пока нет закладок") + } + for key, value := range bookmarks { + fmt.Println(key, ": ", value) + } +} + +func addBookmark(bookmarks bookmarkMap) bookmarkMap { + var newBookmarkKey string + var newBookmarkValue string + fmt.Print("Введите название: ") + fmt.Scan(&newBookmarkKey) + fmt.Print("Введите адрес: ") + fmt.Scan(&newBookmarkValue) + bookmarks[newBookmarkKey] = newBookmarkValue + return bookmarks +} + +func deleteBookmark(bookmarks bookmarkMap) bookmarkMap { + + var bookmarkToDelete string + fmt.Print("Введите название: ") + fmt.Scan(&bookmarkToDelete) + delete(bookmarks, bookmarkToDelete) + return bookmarks +} diff --git a/go-demo-3/maps/main.go b/go-demo-3/maps/main.go new file mode 100644 index 0000000..984115b --- /dev/null +++ b/go-demo-3/maps/main.go @@ -0,0 +1,16 @@ +package maps + +import "fmt" + +func main() { + m := map[string]string{ + "PurpleSchool": "https://purpleschool.ru", + } + m["Google"] = "https://google.com" + m["Gmail"] = "https://gmail.com" + fmt.Println(m) + delete(m, "Gmail") + for _, v := range m { + fmt.Println(v) + } +}