Name: "name",
Prompt: &survey.Input{Message: "What is your name?"},
Validate: survey.Required,
Transform: survey.Title,
Name: "color",
Prompt: &survey.Select{
Message: "Choose a color:",
Options: []string{"red", "blue", "green"},
Default: "red",
Name: "age",
Prompt: &survey.Input{Message: "How old are you?"},
func main() {
// 结果写入到结构体
answers := struct {
Name string // survey 会默认匹配首字母小写的name
FavoriteColor string `survey:"color"` // 或者你也可以用tag指定如何匹配
Age int // 如果类型不一致,survey会尝试转换
// 执行提问
err := survey.Ask(qs, &answers)
if err != nil {
fmt.Println(err.Error())
return
fmt.Printf("%s chose %s.", answers.Name, answers.FavoriteColor)
☆ 文本输入
☆
name := ""
prompt := &survey.Input{
Message: "ping",
survey.AskOne(prompt, &name)
☆ 多行输入
☆
text := ""
prompt := &survey.Multiline{
Message: "ping",
survey.AskOne(prompt, &text)
☆ 密码输入
☆
password := ""
prompt := &survey.Password{
Message: "Please type your password",
survey.AskOne(prompt, &password)
☆ 确认
☆
name := false
prompt := &survey.Confirm{
Message: "Do you like pie?",
survey.AskOne(prompt, &name)
☆ 单选
☆
color := ""
prompt := &survey.Select{
Message: "Choose a color:",
Options: []string{"red", "blue", "green"},
survey.AskOne(prompt, &color)
☆ 多选
☆
days := []string{}
prompt := &survey.MultiSelect{
Message: "What days do you prefer:",
Options: []string{"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"},
survey.AskOne(prompt, &days)
☆ 验证
☆
q := &survey.Question{
Prompt: &survey.Input{Message: "Hello world validation"},
Validate: func (val interface{}) error {
// 自定义验证
if str, ok := val.(string) ; !ok || len(str) > 10 {
return errors.New("This response cannot be longer than 10 characters.")
return nil
color := ""
prompt := &survey.Input{ Message: "Whats your name?" }
survey.AskOne(prompt, &color, survey.WithValidator(survey.Required))
survey内置了几种Validators
-
Required 要求必填
-
MinLength(n) 输入字符最小长度验证
-
MaxLength(n) 输入字符最大长度验证
-
MaxItems(n) 选项最多验证
-
MinItems(n) 选项最小验证
☆ 总结
☆
survey可以帮助我们快速开发出交互式命令行应用,使用简单,功能强大,文档齐全,欢迎使用
☆
参考链接
☆
https://github.com/AlecAivazis/survey
《酷Go推荐》招募:
各位Gopher同学,最近我们社区打算推出一个类似GoCN每日新闻的新栏目《酷Go推荐》,主要是每周推荐一个库或者好的项目,然后写一点这个库使用方法或者优点之类的,这样可以真正的帮助到大家能够学习到
新的库,并且知道怎么用。
大概规则和每日新闻类似,如果报名人多的话每个人一个月轮到一次,欢迎大家报名!戳「阅读原文」,即可报名
扫码也可以加入 GoCN 的大家族哟~
☆什么是 survey?☆survey 可以让你方便的在终端上构建交互式和可访问提示的应用,支持ANSI☆ 安装☆gogetgithub.com/AlecAivazis/surv...
在之前爬虫
Go
中国技术社区每日新闻的的加了一个功能,自动归档到github上,方便查阅,每天自动更新。
gocn
_news_set_2021
go
中文网每日资讯--2021-04-12
一、
Go
语言中文网
Go
数据结构和算法篇(一):链表
二、亚军进化史
Go
技术日报(2021-04-11)——rpcx支持websocket协议了!
三、CloudNativeCommunity
同程旅
行
大数据集群在 Kubernetes 上的服务化实践
四、k8s技术圈
Dockerd资源泄露系列 - 内存&FD泄露 - 1
五、MoeLove
K8S 生态周报| Kubernetes v1.21 发布, 带来新的内存管理器
六、微服务实践
更简的并发代码,更强的并发控制
七、
Go
OfficialBlog
高性能
Go
代码工坊(Part4)
八、分布式实验室
分布式系统在 Kubernetes 上的进
获取
GoCN
新闻
爬取获得
gocn
的新闻,并同步到博客,每日更新从我做起
具体部署方法: ://blog.csdn.net/weixin_44024220/article/details/105960728
参考
库
:
博客框架:hexo
支持每天定时爬取
自动推到hexo页面上
效果展示:
使用方法:
首先修改update.sh中的路径文件,修改为自己的博客路径
每次检索时间为3小时一次
去建立main.
go
nohup ./main和
对于html解析时该
库
无法解析空间,
推荐
使用doc.FindAllStrict此方法
调查用于构建
交互式
提示的
库
。
受到伟大的quirer.js的极大启发。
包main import(“ fmt”“
go
pkg.in/AlecAivazis/
survey
.v1”)//要询问的问题var qs = [] *
survey
.Question {调查一个用于构建
交互式
提示的
库
。
包main import(“ fmt”“ github.com/AlecAivazis/
survey
/v2”)//要询问的问题var qs = [] *
survey
.Question {{名称:“名称”,提示:&
survey
.Input {消息: “您叫什么名字?”},验证:
Survey
.Required,Transform:
survey
.Title,},{名称:“ color”,提示:&
survey
.Select {消息:“选择颜色:”,选项:[]字符串{“红蓝”,
步骤1:为调查创建期望。
调用
survey
mock.Mock()
survey
:=
survey
mock . Mock ( func ( s *
survey
mock.
Survey
) {
s . ExpectPassword ( "Enter a password:" ).
Answer ( "secret" )
})( t ) // t is *testing.T
第2步:运
行
它。
重要提示:使用stdio arg并将其注入
survey
.Prompt否则提示将不起作用。
survey
. Sta
cron,是一个Linux定时执
行
工具
,可以在无需人工干预的情况下运
行
作业。
在Ubuntu server 下,cron是被默认安装并启动的;如果没有启动,自
行
设置并启动(chkconfigsysv-rc-conf)。通过其配置文件 /etc/crontab 可以看到以下内容:ununtu 通过调用 run-parts
命令
,定时运
行
四个目录下的所有脚本。
1)/etc/cron.hourly,目录下的脚本会每个小时让执
行
一次,在每小时的17分钟时运
行
;
2)/etc/cron.daily,目录下的脚本会每
1.
Go
语言中文网:https://study
go
lang.com/
2.
Go
lang中国:https://www.
go
langtc.com/
3.
Go
社区:https://
gocn
.vip/
4.
Go
大本营:https://www.
go
lang123.com/
5.
Go
语言中文论坛:https://
go
langtc.com/forum/
这些网站都提供了丰富的
Go
lang学习资源,包括教程、文档、实战案例、社区论坛等。您可以根据自己的需求选择合适的网站进
行
学习和交流。同时,还有很多国外的
Go
lang学习资源也值得关注,例如官方文档、GitHub上的开源项目等。