欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 文旅 > 文化 > Golang 开发实战day15 - Input info

Golang 开发实战day15 - Input info

2024/11/30 6:48:15 来源:https://blog.csdn.net/u014739136/article/details/140100200  浏览:    关键词:Golang 开发实战day15 - Input info

🏆个人专栏
🤺 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进行测试
在这里插入图片描述

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com