Golang 开发实战day15 - Input info

server/2024/10/21 9:35:56/

🏆个人专栏
🤺 leetcode
🧗 Leetcode Prime
🏇 Golang20天教程
🚴‍♂️ Java问题收集园地
🌴 成长感悟
欢迎大家观看,不执着于追求顶峰,只享受探索过程

Golang 开发实战day15 - 用户信息输入

  在 Golang 使用中,有很多接口工具可以帮我快速实现输入信息的方法,那么这一节主要介绍bufio, strings接口中的常用输入方法工具。配合代码使用场景,希望大家快速入门。

1. 示例代码

1.1 定义账单结构

创建名为bill.go的文件,实现如下内容

type bill struct {name  stringitems map[string]float64tip   float64
}// make new bills
func newBill(name string) bill {b := bill{name:  name,items: map[string]float64{},tip:   0,}return b
}// update tip
func (b *bill) updateTip(tip float64) {b.tip = tip
}// add an item to be bill
func (b *bill) addItem(name string, price float64) {b.items[name] = price

1.2 实现main方法内容

1.2.1 使用Os.Stdin和bufio.NewReader

在main方法中实现createBill方法,用于作为终端输入提示信息。其中bufio 包提供了一个用于读取和写入 I/O 的更高级缓冲区。例如,bufio.NewReader() 函数可用于从 os.Stdin 创建一个 bufio.Reader 对象,然后可以使用该对象逐个字符或逐行读取输入。

func createBill() bill {reader := bufio.NewReader(os.Stdin)name, _ := getInput("Create a new bill name: ", reader)b := newBill(name)fmt.Println("Created the bill - ", b.name)return b
}

1.2.2 使用strings.TrimSpace方法

方法主要是为了去除首尾空格

func getInput(prompt string, r *bufio.Reader) (string, error) {fmt.Print(prompt)input, err := r.ReadString('\n')return strings.TrimSpace(input), err
}

1.2.3 给出提示信息

func promptOptions(b bill) {reader := bufio.NewReader(os.Stdin)opt, _ := getInput("Choose option (a - add item, s - save bill, t - add tip): ", reader)fmt.Println(opt)
}

1.2.4 main方法实现

func main() {mybill := createBill()promptOptions(mybill)
}

2. 运行代码

在Terminal中执行:go run main.go bill.go
执行后,输入test进行测试
在这里插入图片描述


http://www.ppmy.cn/server/55407.html

相关文章

如何在开发过程中减少 Bug?

爱因斯坦曾说过:“如果我有一个小时来解决一个关系到我生死的问题,我会花55分钟弄清楚问题是什么。一旦我知道了问题是什么,我可以在五分钟内解决它。” 虽然我们的软件开发过程并不涉及生死抉择,但它直接影响用户体验&#xff0c…

python 基础综合应用——小开发

#python 基础综合应用——小开发 综合复习 变量- 循环- 函数- 模块 开发 名片管理系统 名片管理系统介绍 名片管理系统可以理解成花名册软件,通过个人新建人的信息后可以进行查询等简单操作的程序 名片管理系统有三个作用, 1.新建名片 2.显示全部名…

Qt涂鸦板

Qt版本&#xff1a;Qt6 具体代码&#xff1a; 头文件 dialog.h #ifndef DIALOG_H #define DIALOG_H#include <QDialog>QT_BEGIN_NAMESPACE namespace Ui { class Dialog; } QT_END_NAMESPACEclass Dialog : public QDialog {Q_OBJECTpublic:Dialog(QWidget *parent n…

中介子方程四十三

XXFXXaXnXaXXαXLXyXXWXuXeXkXeXuXWXXyXLXαXXaXnXaXXFXXaXnXaXXαXLXyXXWXuXeXkXeXuXWXXyXLXαXXaXnXaXXFXXuXXWXXuXXdXXrXXαXXuXpXXKXηXiXXnXXyXηXuXXrXXaXnXXαXLXyXXWXuXeXkXeXuXWXXyXLXαXXnXaXXrXXuXηXyXXnXXiXηXKXXpXuXXαXXrXXdXXuXWXπXXWXeXyXeXbXπXpXXNXXqXeX…

Python面试题:在 Python 中,如何处理异常?

在 Python 中&#xff0c;异常处理是编写健壮代码的重要部分。Python 提供了 try、except、else 和 finally 关键字来捕获和处理异常。以下是对这些关键字及相关知识点的详细解析。 异常处理基本语法 try-except try 块用于包裹可能引发异常的代码&#xff0c;except 块用于…

SQL MINUS 运算符:查找数据集之间的差异

在 SQL 中&#xff0c;MINUS 运算符在查询中起着至关重要的作用&#xff0c;它允许开发人员识别和检索存在于一个数据集中但不存在于另一个数据集中的记录。本文探讨了 SQL 中 MINUS 运算符的功能、用法和实际应用&#xff0c;强调了它在数据分析和操作任务中的重要性。 理解 …

Qt学习:Qt窗口组件以及窗口类型

一、Qt的窗口组件有哪些 Qt是一个跨平台的C应用程序开发框架&#xff0c;它的窗口组件&#xff0c;也称为用户界面元素&#xff0c;为开发者提供了丰富的可视化界面设计选项。在Qt中&#xff0c;窗口组件主要包括&#xff1a; 窗口&#xff08;Window&#xff09;&#xff1a;…

泛微开发修炼之旅--28巧用计划任务更新建模数据

文章链接&#xff1a;28巧用计划任务更新建模数据