首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在golang中,我如何在一段时间后不按任何键即可获得输入

在golang中,你可以使用以下方式在一段时间后不按任何键即可获得输入:

  1. 使用time.After()函数结合os.Stdin进行超时处理:
代码语言:txt
复制
package main

import (
    "fmt"
    "os"
    "time"
)

func main() {
    var input string

    go func() {
        fmt.Print("请输入:")
        _, _ = fmt.Scanln(&input)
    }()

    select {
    case <-time.After(5 * time.Second):
        fmt.Println("时间到,没有输入")
    case <-time.After(10 * time.Second):
        fmt.Println("超时,没有输入")
    case <-time.After(15 * time.Second):
        fmt.Println("再次超时,没有输入")
    }

    fmt.Println("输入内容:", input)
}

这段代码中,首先定义了一个变量input用于保存输入内容。然后使用匿名函数开启一个goroutine,在其中使用fmt.Scanln()函数获取输入内容。接着使用select语句和time.After()函数实现超时处理。如果在5秒内没有输入,会执行第一个case分支;如果在10秒内没有输入,会执行第二个case分支;如果在15秒内没有输入,会执行第三个case分支。最后输出输入的内容。

  1. 使用第三方库github.com/nsf/termbox-go进行键盘事件监听:
代码语言:txt
复制
package main

import (
    "fmt"
    "time"

    "github.com/nsf/termbox-go"
)

func main() {
    err := termbox.Init()
    if err != nil {
        panic(err)
    }
    defer termbox.Close()

    var input string
    timeout := time.After(5 * time.Second)
    finished := make(chan bool)

    go func() {
        for {
            switch ev := termbox.PollEvent(); ev.Type {
            case termbox.EventKey:
                input += string(ev.Ch)
            case termbox.EventError:
                panic(ev.Err)
            }
        }
    }()

loop:
    for {
        select {
        case <-timeout:
            break loop
        case <-finished:
            break loop
        }
    }

    fmt.Println("输入内容:", input)
}

这段代码中,首先使用termbox.Init()函数初始化termbox库,然后使用termbox.PollEvent()函数监听键盘事件,并在事件类型为termbox.EventKey时将输入内容拼接起来。通过使用select语句和通道实现超时处理。当超过5秒钟后,timeout通道将会被触发,从而跳出循环。最后输出输入的内容。

这些方法可以在golang中实现在一段时间后不按任何键即可获得输入的功能。请注意,以上代码仅为示例,实际使用中可能需要根据具体情况进行调整和优化。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Go语言开发环境_如何搭建语言培训平台

对于我而言,还是觉得轻量、开放、开源的VS Code更适合,曾经使用它开发过一段时间的node.js,使用起来很顺手,并且可以安装各类插件,在一定程度上可以提高开发效率。...3.2 安装 选择左侧扩展菜单栏(或快捷:Ctrl + Shift + X),搜索框输入“go”,搜索出来的第一个插件便是我们想要的go语言扩展,点击“Install”即可安装,如下图: 3.3...in settings.json”,打开配置窗口,该json配置文件增加go.gopath字段,值设置成你希望的目录就好,这里设置成“D:\GoProjects”。...(1)按照以往的习惯,都会直接f5进行启动并调试,照旧进行操作,发现下f5启动时会弹出以下图提示框,原因不用多说,就是缺少调试所需的包,点击“install”即可安装。...本站仅提供信息存储空间服务,拥有所有权,承担相关法律责任。发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

79030
  • 云原生工具集 · 管理多集群Kubeconfig

    背景 做为一个k8s的学习或者使用者,避免不了会操作不同的k8s集群,每次操作不同集群的时候,可能都会使用--kubeconfig指定要操作集群的配置文件,这样显得格外的麻烦,使用过一段时间的alias...}_Linux_x86_64.tar.gz tar -zxvf kubecm.tar.gz kubecm && cd kubecm Windows 下载二进制可执行文件,并将文件移动到 $PATH 即可...kubecm 提供了和 kubectl[2] 一样的 completion 命令行自动补全功能 source <(kubecm completion zsh) 之后,输入 kubecm tab...,就可以看到命令行自动补全的内容 ?...操作 kubeconfig 你可以通过kubecm --help查看有哪些命令行选项,选项不多,都是见名知意的那种,这里列举了。 ? 效果图 kubecm list ?

    93720

    vim命令搜索_linux的vim

    Vim 的基础搜索操作 当你 Vim 打开一个文件并且想要搜索一个特定的单词或模板,第一步你必须要先按下 Esc 从插入模式退出(如果你正处于插入模式)。...例如,如果你想要搜索的单词是 linux,下图显示的就是 Vim 窗口底部的搜索命令: 敲击回车之后,你会看到 Vim 会将光标停留在从光标插入模式的位置开始,找到的包含此单词的第一行。...如果你希望禁止环形搜索,可以使用如下命令: :set nowrapscan 再次开启环形搜索,使用如下命令即可: :set wrapscan 最后,假设你想要对文件已经存在的单词做一点小小的修改,然后对修改的单词执行搜索操作...如果想要获得更多小技巧(包括如何使用鼠标来使 Vim 的操作变得简单),请前往 Vim 官方文档。 结语 当然,没有人希望你死记硬背这里提到的所有小技巧。...本站仅提供信息存储空间服务,拥有所有权,承担相关法律责任。发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

    10.2K20

    最终,为什么选择go-kit

    主要目的是想陈述golang技术体系我们团队中落地过程,分析我们各个阶段,遇到的一些问题,并將分析问题的思路和解决问题的方法记录下来,以便让后来的同学了解golang团队的演进过程,吸取相关的经验...我们怎样由php转向golang 由于之前团队全部都是php栈,golang方面的积累并不多,所以php转向golang的过程,面临了转型过程中都会面临的问题: 1 用什么框架; 2 在业务任务重...除此之外,我们还维护了一套常用的公共组件库,:日志库,各种数据库driver等。 ? 图1 分层构架 如何重构 当我们制定好编程模版,我们就开始进行项目重构工作。...图2 go-kit架构图 我们怎样將go-kit集成到我们现有的业务系统 我们找到了心仪的开源工具,那么我们怎样以较低的成本将其引入到我们业务系统呢?...集成的过程,需要注意一点:之前的代码router层不能包含任何业务逻辑,否则就无法集成。 ?

    2.7K70

    腾讯云AI代码助手 —— 编程新体验,智能编码新纪元

    登录认证:安装完成,根据插件提示进行登录认证。通常需要开发者使用腾讯云账号进行登录,并进行相应的安全认证。 开始使用:登录认证完成即可在VS Code开始使用腾讯云AI代码助手的功能。...技术对话 人工智能技术对话,复杂问题轻松解决 技术对话集成 IDE,支持将对话代码内容一插入编译区当中; 首先找到上面这个图标唤醒腾讯云 AI 代码助手 你可以输入框内输入你的技术性问题,代码助手会给你详细解决...Ctrl组合是有效的,但具体取决于软件或IDE的实现) Ctrl + Win + N 代码区域打开技术对话(同样,注意Win与Ctrl组合的有效性) 三、获得的帮助与提升 利用腾讯云AI代码助手来编写测试用例...四、建议 在这一段时间的使用对腾讯云AI代码助手的体验深感满意,尤其是通过自动补全功能节省了大量的时间。...作为用户, 想要提出一些建议: 使用过程可以根据用户的个性需求来定制一份专属的代码助手,可以结合用户的代码风格以及拼写习惯来生成更便捷的代码。

    16410

    五步掌握用VSCode进行高效Python开发

    编辑一个已有的Python项目 埃拉托斯特尼筛法的例子,你创建了一个单独的Python文件。这作为例子来讲很合适,但通常你会创建更大的项目,并在其上工作一段时间。...以下几种方式都可以在用户界面打开一个文件夹:菜单栏中点击File—Open Folder;下快捷Ctrl+K或Ctrl+O;命令盘中键入file:open folder。...的公式求值库项目打开看起来是这样的: ? 当VSCode打开文件夹时,它同时也会打开你最近打开的文件(这个行为是可配置的)。 你可以打开、编辑、运行、调试文件列表任何文件。...用unittest为的公式求值库写了一个单元测试,大家可以用它作为例子来学习。 你可以项目中的任何一个文件右键选择Run Current Unit Test File来运行已有的单元测试。...顶端输入提交信息,最后点击对勾来提交这些更改。 ? 你也可以VSCode中将本地提交推至Github。选择版本控制视图中的Sync,点击状态栏的Synchronize Changes即可

    5.5K50

    五步掌握用VSCode进行高效Python开发

    编辑一个已有的Python项目 埃拉托斯特尼筛法的例子,你创建了一个单独的Python文件。这作为例子来讲很合适,但通常你会创建更大的项目,并在其上工作一段时间。...以下几种方式都可以在用户界面打开一个文件夹:菜单栏中点击File—Open Folder;下快捷Ctrl+K或Ctrl+O;命令盘中键入file:open folder。...的公式求值库项目打开看起来是这样的: ? 当VSCode打开文件夹时,它同时也会打开你最近打开的文件(这个行为是可配置的)。 你可以打开、编辑、运行、调试文件列表任何文件。...用unittest为的公式求值库写了一个单元测试,大家可以用它作为例子来学习。 你可以项目中的任何一个文件右键选择Run Current Unit Test File来运行已有的单元测试。...顶端输入提交信息,最后点击对勾来提交这些更改。 ? 你也可以VSCode中将本地提交推至Github。选择版本控制视图中的Sync,点击状态栏的Synchronize Changes即可

    6K30

    硬核教程:五步掌握用 VS Code 进行高效 Python 开发

    编辑一个已有的Python项目 埃拉托斯特尼筛法的例子,你创建了一个单独的Python文件。这作为例子来讲很合适,但通常你会创建更大的项目,并在其上工作一段时间。...以下几种方式都可以在用户界面打开一个文件夹:菜单栏中点击File—Open Folder;下快捷Ctrl+K或Ctrl+O;命令盘中键入file:open folder。...的公式求值库项目打开看起来是这样的: ? 当VSCode打开文件夹时,它同时也会打开你最近打开的文件(这个行为是可配置的)。 你可以打开、编辑、运行、调试文件列表任何文件。...用unittest为的公式求值库写了一个单元测试,大家可以用它作为例子来学习。 你可以项目中的任何一个文件右键选择Run Current Unit Test File来运行已有的单元测试。...顶端输入提交信息,最后点击对勾来提交这些更改。 ? 你也可以VSCode中将本地提交推至Github。选择版本控制视图中的Sync,点击状态栏的Synchronize Changes即可

    5.5K41

    硬核教程:五步掌握用VSCode进行高效Python开发

    编辑一个已有的Python项目 埃拉托斯特尼筛法的例子,你创建了一个单独的Python文件。这作为例子来讲很合适,但通常你会创建更大的项目,并在其上工作一段时间。...以下几种方式都可以在用户界面打开一个文件夹:菜单栏中点击File—Open Folder;下快捷Ctrl+K或Ctrl+O;命令盘中键入file:open folder。...的公式求值库项目打开看起来是这样的: ? 当VSCode打开文件夹时,它同时也会打开你最近打开的文件(这个行为是可配置的)。 你可以打开、编辑、运行、调试文件列表任何文件。...用unittest为的公式求值库写了一个单元测试,大家可以用它作为例子来学习。 你可以项目中的任何一个文件右键选择Run Current Unit Test File来运行已有的单元测试。...顶端输入提交信息,最后点击对勾来提交这些更改。 ? 你也可以VSCode中将本地提交推至Github。选择版本控制视图中的Sync,点击状态栏的Synchronize Changes即可

    8.2K30

    硬核教程:五步掌握用VSCode进行高效Python开发

    编辑一个已有的Python项目 埃拉托斯特尼筛法的例子,你创建了一个单独的Python文件。这作为例子来讲很合适,但通常你会创建更大的项目,并在其上工作一段时间。...以下几种方式都可以在用户界面打开一个文件夹:菜单栏中点击File—Open Folder;下快捷Ctrl+K或Ctrl+O;命令盘中键入file:open folder。...的公式求值库项目打开看起来是这样的: ? 当VSCode打开文件夹时,它同时也会打开你最近打开的文件(这个行为是可配置的)。 你可以打开、编辑、运行、调试文件列表任何文件。...用unittest为的公式求值库写了一个单元测试,大家可以用它作为例子来学习。 你可以项目中的任何一个文件右键选择Run Current Unit Test File来运行已有的单元测试。...顶端输入提交信息,最后点击对勾来提交这些更改。 ? 你也可以VSCode中将本地提交推至Github。选择版本控制视图中的Sync,点击状态栏的Synchronize Changes即可

    5.9K30

    最强开源编辑器,五步教你用 VSCode 进行 Python 开发!

    下 Ctrl+Shift+P 打开命令盘,键入 new file,下回车,也可以编辑一个新文件。 无论用哪种方法,你应该可以看到类似下面这样的窗口: ? 新文件打开,就可以开始写代码啦。...编辑一个已有的 Python 项目 埃拉托斯特尼筛法的例子,你创建了一个单独的 Python 文件。这作为例子来讲很合适,但通常你会创建更大的项目,并在其上工作一段时间。...以下几种方式都可以在用户界面打开一个文件夹:菜单栏中点击 File—Open Folder;下快捷 Ctrl+K 或 Ctrl+O;命令盘中键入 file:open folder。...的公式求值库项目打开看起来是这样的: ? 当 VSCode 打开文件夹时,它同时也会打开你最近打开的文件(这个行为是可配置的)。 你可以打开、编辑、运行、调试文件列表任何文件。...你可以项目中的任何一个文件右键选择 Run Current Unit Test File 来运行已有的单元测试。

    7K20

    兔起鹘落全端涵盖,Go lang1.18入门精炼教程,由白丁入鸿儒,全平台(Sublime 4)Go lang开发环境搭建EP00

    与时俱进,顺应潮流,本次我们乘着市场的东风,各大主流平台(Win/Mac/Linux/Docker)安装并搭建Go lang1.18的开发环境,短时间内做到能够在任何一款开发机或者服务器上输出Go lang...安装完毕之后,首先输入“win+R”,打开终端。然后在里面输入命令:control system。在打开的系统信息界面,选择左侧菜单的“高级系统设置”。...(进入 i进入编辑模式) $ export PATH=$PATH:/usr/local/go/bin # esc 退出编辑模式, :wq 保存文件 $ go version     系统返回...: go version go1.18 linux/amd64     Docker容器搭建     如果我们希望go lang系统留下些许的痕迹,Docker也可以帮我们快速搭建开发环境,关于Docker...    然后输入Golang Build   回车安装     安装成功,配置go lang安装路径:     首选项 -> package settings -> Golang Config

    57730

    HeRMs :一个命令行食谱管理器

    例如,你可以使用以下命令 Arch Linux 及其变体( Antergos、Manjaro Linux)安装 cabal: sudo pacman -S cabal-install Debian...source ~/.bashrc 安装 cabal ,运行以下命令安装 herms: cabal install herms 喝一杯咖啡!这将需要一段时间。几分钟,你会看到一个输出,如下所示。...添加完配方的详细信息下 ESC 并点击 Y 保存。同样,你可以根据需要添加尽可能多的食谱。...要列出添加的食谱,输入: herms list image.png 要查看上面列出的任何食谱的详细信息,请使用下面的相应编号。...herms view 1 image.png 要编辑任何食谱,使用: herms edit 1 完成更改下 ESC 。系统会询问你是否要保存。你只需选择适当的选项。

    43420

    Mac OS X系统搭建谷歌Go语言开发工具 Sublime Text 2环境配置

    一、安装Golang的SDK 官网http://golang.org/ 直接下载安装包安装即可。下载pkg格式的最新安装包,直接双击运行,一路按照提示操作即可完成安装。...安装完成,打开终端,输入go,检测Golang SDK是否安装成功,如下显示,则表示安装成功: 你也可以输入go version 查看你所安装的Golang的版本 二、环境变量配置...的缩写),如下图所示: 随后的界面输入GoSublime,回车,就可以安装GoSbulime了。...四、开始Golang 在你的GOPATH的工作空间里,src目录下新建一个文件夹,以项目名命名,然后将文件夹拖到Sublime Text 2上,即可将项目Sublime Text 2打开了...,然后在里边新建文件,保存为“***.go”即可,然后就可以开始编码了: Sublime Text 2有对Golang的代码自动补全功能: 对于编写好的文件,使用快捷Command

    56630

    linux下卸载软件命令行,如何使用Linux的命令行卸载软件 | MOS86「建议收藏」

    相关文章图片1tupian如何在Ubuntu轻松添加和删除程序14.04 如何在Linux 中找到应用程序的精确包名如果您有想要卸载的内容,但是您不知道确切的名称,请参阅我们的文章,了解Linux查找准确的包名称...您还可以使用“dpkg”命令查看计算机上所有已安装软件包的列表,“Ctrl Alt T”打开终端窗口。提示符下键入以下命令,然后“Enter”。...sudo apt-get –purge删除gimp 提示时输入密码,然后“Enter”。 NOTE:密码您键入时不会显示。但是,您可以选择键入密码时显示星号。...当询问您是否要继续时,输入“y”并按“Enter”。 安装过程继续。完成提示符下输入“exit”,“Enter”关闭“终端”窗口,或单击窗口左上角的“X”按钮。...本站仅提供信息存储空间服务,拥有所有权,承担相关法律责任。发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

    4K20

    【方向盘】使用IDEA的60+个快捷分享给你,权为了提效(操作系统、终端篇)

    这里可能有些同学就不习惯了:回车一般都是打开文件/文件夹吗? 是的,这确实是和windows有点不一样的地方。Mac里打开文件/文件夹是使用cmd + o组合来完成的。...下面的快捷几乎可以用于任何文本输入的地方,包括但不限于记事本、备忘录、IDE、终端、搜索框… Home和End 用惯快捷的小伙伴知道,这两个非常好用,可以说不可或缺。...但你或许可能会疑问:为何在浏览器里写文字时,有时候好使(如在输入框填写内容),有时候不好使(如在CSDN的编辑器里写文章),怎么回事???...卖关子了,直接说根本原因:如果是浏览器的输入框里(input、textarea等)编辑文本,这套组合的语义是正确的,否则语义就变为了: fn + ←:回到页顶 fn + →:回到页尾 那么问题来了...✌ 删除字符 快捷 功能说明 control + h 删除光标前的1个字符(效果同直接delete) control + d 删除光标的1个字符。

    1.6K10

    Ubuntu 系统怎么切换多个 PHP 版本

    有时,最新版本的安装包可能无法预期工作。你的程序可能与更新的软件包兼容,并且仅支持特定的旧版软件包。在这种情况下,你可以立即将有问题的软件包降级到其早期的工作版本。...例如,假设你测试部署 Ubuntu 18.04 LTS 的LAMP 栈的 PHP 程序。...过了一段时间,你发现应用程序 PHP 5.6 工作正常,但在 PHP 7.2 不正常(Ubuntu 18.04 LTS 默认安装 PHP 7.x)。...在这个简短的教程将向你展示如何在 Ubuntu 18.04 LTS 中切换多个 PHP 版本。它没你想的那么难。请继续阅读。...$ sudo update-alternatives --config php 输入选择的号码将其设置为默认版本,或者只需按回车保持当前选择。

    2.4K20

    使用 Linux 终端浏览你的计算机

    当然,你是 Web 浏览器打开它的,浏览器会将所有那些看起来奇怪的 HTML 代码解释成漂亮的文本和图片。但这两者的思路是完全一样的。...如果你把你的计算机看成是互联网(或者把互联网看成是计算机会更合适),那么你就能理解如何在你的文件夹和文件遨游了。.... $ pwd /home/tux 这需要一些练习,但一段时间,它会变得比你打开和关闭窗口、点击返回按钮和文件夹图标快得多。...用 Tab 自动补全 键盘上的 Tab 可以自动补全你开始输入的文件夹和文件的名字。如果你要 cd 到 ~/Documents 文件夹,那么你只需要输入 cd ~/Doc,然后 Tab 即可。...如果你下 Tab 而没有任何东西自动补全,那么可能你 认为 存在于某个位置的文件或文件件实际上并不存在。

    55330

    VS Code配置Go语言开发环境

    双击下载好的安装文件,双击安装即可。 安装中文简体插件 点击左侧菜单栏最后一项   管理扩展  ,  搜索框  输入  chinese  ,选中结果列表第一项,点击  install  安装。.../x目录 第二步:终端/cmdcd到GOPATH/src/golang.org/x目录下 第三步:执行git clone https://github.com/golang/tools.git tools...配置代码片段快捷 还是Ctrl/Command+Shift+P,下图输入>snippets,选择命令并执行: ? 然后弹出如下页面: ?...可以简单看下上面的注释,介绍了主要用法: 1 “这里放个名字”:{ 2 "prefix": "这个是快捷", 3 "body": "这里是快捷插入的代码片段", 4 "description...举个例子,这里创建了两个快捷方式,一个是输入 pln 就会在编辑器插入 fmt.Println() 代码;输入 plf ,就会插入 fmt.Printf("") 代码。

    2.9K31
    领券