做一的同志小说网站,网站建设报价比较表,建设网站的提成是多少,蒙城做网站的公司#x1f3c6;个人专栏 #x1f93a; leetcode #x1f9d7; Leetcode Prime #x1f3c7; Golang20天教程 #x1f6b4;♂️ Java问题收集园地 #x1f334; 成长感悟 欢迎大家观看#xff0c;不执着于追求顶峰#xff0c;只享受探索过程 Golang 开发实战day15 - 用户… 个人专栏 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] price1.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进行测试