最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Go語言實現(xiàn)簡易命令行定時提醒程序的示例代碼

 更新時間:2025年09月08日 08:47:02   作者:程序員愛釣魚  
在日常工作和學習中,我們常常需要一個小工具來提醒自己,本文將用 Go 寫一個輕量級的 命令行定時提醒程序,文中的示例代碼講解詳細,感興趣的小伙伴可以了解下

在日常工作和學習中,我們常常需要一個小工具來提醒自己:比如休息眼睛、喝水、開會等。雖然很多軟件有提醒功能,但用 Go 寫一個輕量級的 命令行定時提醒程序,不僅簡單實用,還能幫助我們熟悉 時間操作、并發(fā)、命令行交互 等關鍵知識點。

本文將實現(xiàn)一個簡易定時提醒程序,支持以下功能:

  • 指定提醒時間(如 10 秒后、30 分鐘后)
  • 提醒時在終端打印提示信息
  • 支持多任務提醒

一、程序思路

用戶通過命令行傳入提醒時間和內(nèi)容,例如:

remind -after=10s -msg="喝水提醒"
remind -after=1m -msg="開會啦"

程序解析參數(shù),使用 time.Aftertime.NewTimer 實現(xiàn)延遲提醒。

到點后輸出提醒信息。

二、代碼實現(xiàn)

main.go

package main

import (
	"flag"
	"fmt"
	"time"
)

func main() {
	// 定義命令行參數(shù)
	after := flag.Duration("after", 10*time.Second, "提醒時間,例如 10s、1m、2h")
	msg := flag.String("msg", "時間到啦!", "提醒內(nèi)容")
	flag.Parse()

	fmt.Printf("? 已設置提醒: %s 后提醒 -> %s\n", after.String(), *msg)

	// 使用定時器
	timer := time.NewTimer(*after)

	// 等待定時觸發(fā)
	<-timer.C
	fmt.Printf("?? 提醒: %s\n", *msg)
}

三、運行測試

10 秒提醒

go run main.go -after=10s -msg="喝水提醒"

輸出:

? 已設置提醒: 10s 后提醒 -> 喝水提醒
?? 提醒: 喝水提醒

1 分鐘提醒

go run main.go -after=1m -msg="開會啦"

輸出:

? 已設置提醒: 1m0s 后提醒 -> 開會啦
?? 提醒: 開會啦

四、支持多任務提醒

如果我們想同時設置多個提醒,可以在 flag.Args() 獲取額外參數(shù),或者用一個簡單的 配置文件。這里用 goroutine 來并發(fā)執(zhí)行多個提醒。

示例(多個提醒同時執(zhí)行):

package main

import (
	"fmt"
	"time"
)

type Reminder struct {
	After time.Duration
	Msg   string
}

func main() {
	reminders := []Reminder{
		{After: 5 * time.Second, Msg: "喝水提醒"},
		{After: 10 * time.Second, Msg: "起身走動一下"},
		{After: 15 * time.Second, Msg: "開會啦"},
	}

	for _, r := range reminders {
		go func(r Reminder) {
			timer := time.NewTimer(r.After)
			<-timer.C
			fmt.Printf("?? 提醒: %s\n", r.Msg)
		}(r)
	}

	// 阻塞主程序,否則會直接退出
	select {}
}

運行后,程序會在 5s、10s、15s 分別提醒。

五、總結

通過這個案例,我們學習了:

  • 如何用 flag 包解析命令行參數(shù)
  • 使用 time.NewTimer / time.After 實現(xiàn)延時提醒
  • 使用 goroutine 實現(xiàn)多個提醒并發(fā)執(zhí)行

這個簡易定時提醒工具非常輕巧,適合平時用來做一些 番茄鐘喝水提醒會議提醒。

到此這篇關于Go語言實現(xiàn)簡易命令行定時提醒程序的示例代碼的文章就介紹到這了,更多相關Go定時提醒內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • goland設置控制臺折疊效果

    goland設置控制臺折疊效果

    這篇文章主要介紹了goland設置控制臺折疊效果,本文通過圖文并茂的形式給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-12-12
  • go語言使用pipe讀取子進程標準輸出的方法

    go語言使用pipe讀取子進程標準輸出的方法

    這篇文章主要介紹了go語言使用pipe讀取子進程標準輸出的方法,實例分析了Go語言針對進程操作的技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-03-03
  • 一文帶你掌握Go語言中文件的寫入操作

    一文帶你掌握Go語言中文件的寫入操作

    這篇文章主要和大家分享一下Go語言中文件的寫入操作,文中的示例代碼講解詳細,對我們學習Go語言有一定的幫助,需要的小伙伴可以參考一下
    2022-12-12
  • 詳解Go strconv包

    詳解Go strconv包

    Go語言中strconv包實現(xiàn)了基本數(shù)據(jù)類型和其字符串表示的相互轉(zhuǎn)換。這篇文章主要介紹了Go strconv包的相關知識,需要的朋友可以參考下
    2020-10-10
  • Golang中如何實現(xiàn)枚舉詳析

    Golang中如何實現(xiàn)枚舉詳析

    舉就是將數(shù)據(jù)值一一列出來,枚舉可以用來表示一些固定的值,枚舉是常量組成的,下面這篇文章主要給大家介紹了關于Golang中如何實現(xiàn)枚舉的相關資料,需要的朋友可以參考下
    2022-07-07
  • Go實現(xiàn)凱撒密碼加密解密

    Go實現(xiàn)凱撒密碼加密解密

    這篇文章主要為大家介紹了Go實現(xiàn)凱撒密碼加密解密示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-08-08
  • go語言阻塞函數(shù)和非阻塞函數(shù)實現(xiàn)

    go語言阻塞函數(shù)和非阻塞函數(shù)實現(xiàn)

    本文主要介紹了go語言阻塞函數(shù)和非阻塞函數(shù)實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-03-03
  • golang網(wǎng)絡通信超時設置方式

    golang網(wǎng)絡通信超時設置方式

    這篇文章主要介紹了golang網(wǎng)絡通信超時設置方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-12-12
  • Golang中的Interface詳解

    Golang中的Interface詳解

    本文詳細講解了Golang中的Interface,文中通過示例代碼介紹的非常詳細。對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-07-07
  • Go語言實現(xiàn)順序存儲的線性表實例

    Go語言實現(xiàn)順序存儲的線性表實例

    這篇文章主要介紹了Go語言實現(xiàn)順序存儲的線性表的方法,實例分析了Go語言實現(xiàn)線性表的定義、插入、刪除元素等的使用技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-03-03

最新評論

林芝县| 丰宁| 贵溪市| 大埔区| 通渭县| 湟源县| 枣强县| 孟连| 滁州市| 泸溪县| 南通市| 乌审旗| 新龙县| 闵行区| 周口市| 绥滨县| 三台县| 乌鲁木齐市| 新安县| 北安市| 康保县| 刚察县| 乌兰察布市| 马尔康县| 武汉市| 二手房| 抚松县| 沈丘县| 商都县| 施秉县| 镇平县| 横山县| 临汾市| 清水县| 武汉市| 东港市| 忻州市| 井陉县| 吉木萨尔县| 大邑县| 通州区|