用Go 写一个备忘录 包括1. 查询全部备忘录(要显示出标题与内容) 2. 新增备忘录(分别输入标题和内容) 3. 删除备忘录 4. 更新备忘录 5. 退出备忘录
时间: 2024-05-04 20:17:15 浏览: 181
好的,以下是用 Go 编写备忘录的代码:
```go
package main
import (
"bufio"
"fmt"
"os"
"strings"
)
type Memo struct {
Title string
Content string
}
var memos []Memo
func main() {
for {
fmt.Println("请选择操作:")
fmt.Println("1. 查询全部备忘录")
fmt.Println("2. 新增备忘录")
fmt.Println("3. 删除备忘录")
fmt.Println("4. 更新备忘录")
fmt.Println("5. 退出备忘录")
var choice int
fmt.Scanln(&choice)
switch choice {
case 1:
showMemos()
case 2:
addMemo()
case 3:
deleteMemo()
case 4:
updateMemo()
case 5:
os.Exit(0)
default:
fmt.Println("无效的选择")
}
}
}
func showMemos() {
if len(memos) == 0 {
fmt.Println("没有备忘录")
} else {
for i, memo := range memos {
fmt.Printf("备忘录 %d:\n标题:%s\n内容:%s\n", i+1, memo.Title, memo.Content)
}
}
}
func addMemo() {
reader := bufio.NewReader(os.Stdin)
fmt.Print("请输入标题:")
title, _ := reader.ReadString('\n')
fmt.Print("请输入内容:")
content, _ := reader.ReadString('\n')
title = strings.TrimSpace(title)
content = strings.TrimSpace(content)
memos = append(memos, Memo{Title: title, Content: content})
fmt.Println("添加成功")
}
func deleteMemo() {
showMemos()
if len(memos) == 0 {
return
}
var choice int
fmt.Print("请输入要删除的备忘录编号:")
fmt.Scanln(&choice)
if choice < 1 || choice > len(memos) {
fmt.Println("无效的选择")
return
}
memos = append(memos[:choice-1], memos[choice:]...)
fmt.Println("删除成功")
}
func updateMemo() {
showMemos()
if len(memos) == 0 {
return
}
var choice int
fmt.Print("请输入要更新的备忘录编号:")
fmt.Scanln(&choice)
if choice < 1 || choice > len(memos) {
fmt.Println("无效的选择")
return
}
reader := bufio.NewReader(os.Stdin)
fmt.Print("请输入标题:")
title, _ := reader.ReadString('\n')
fmt.Print("请输入内容:")
content, _ := reader.ReadString('\n')
title = strings.TrimSpace(title)
content = strings.TrimSpace(content)
memos[choice-1].Title = title
memos[choice-1].Content = content
fmt.Println("更新成功")
}
```
以上代码实现了备忘录的基本功能,可以通过命令行进行操作。其中 `Memo` 结构体表示一条备忘录,`memos` 变量保存所有备忘录。具体实现如下:
1. `showMemos()` 函数用于查询全部备忘录,如果备忘录为空,则输出 "没有备忘录";否则,遍历备忘录数组,并输出每条备忘录的标题和内容。
2. `addMemo()` 函数用于新增备忘录,首先使用 `bufio.NewReader()` 函数读取用户输入的标题和内容,使用 `strings.TrimSpace()` 函数去除首尾空格,然后将新的备忘录添加到 `memos` 数组中,最后输出 "添加成功"。
3. `deleteMemo()` 函数用于删除备忘录,首先调用 `showMemos()` 函数输出所有备忘录,然后询问用户要删除哪条备忘录,如果用户输入的编号无效,则输出 "无效的选择";否则,使用 `append()` 函数将要删除的备忘录从 `memos` 数组中移除,最后输出 "删除成功"。
4. `updateMemo()` 函数用于更新备忘录,首先调用 `showMemos()` 函数输出所有备忘录,然后询问用户要更新哪条备忘录,如果用户输入的编号无效,则输出 "无效的选择";否则,使用 `bufio.NewReader()` 函数读取用户输入的新标题和内容,使用 `strings.TrimSpace()` 函数去除首尾空格,然后更新指定的备忘录,最后输出 "更新成功"。
5. `main()` 函数是整个程序的入口,使用一个无限循环来不断接收用户选择的操作,根据不同的选择调用相应的函数,如果用户选择退出,则调用 `os.Exit()` 函数终止程序的运行。
阅读全文