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

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

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

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

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

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

一、程序思路

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

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

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

到點(diǎn)后輸出提醒信息。

二、代碼實(shí)現(xiàn)

main.go

package main

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

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

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

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

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

三、運(yùn)行測(cè)試

10 秒提醒

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

輸出:

? 已設(shè)置提醒: 10s 后提醒 -> 喝水提醒
?? 提醒: 喝水提醒

1 分鐘提醒

go run main.go -after=1m -msg="開會(huì)啦"

輸出:

? 已設(shè)置提醒: 1m0s 后提醒 -> 開會(huì)啦
?? 提醒: 開會(huì)啦

四、支持多任務(wù)提醒

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

示例(多個(gè)提醒同時(shí)執(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: "起身走動(dòng)一下"},
		{After: 15 * time.Second, Msg: "開會(huì)啦"},
	}

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

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

運(yùn)行后,程序會(huì)在 5s、10s、15s 分別提醒。

五、總結(jié)

通過這個(gè)案例,我們學(xué)習(xí)了:

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

這個(gè)簡(jiǎn)易定時(shí)提醒工具非常輕巧,適合平時(shí)用來做一些 番茄鐘、喝水提醒會(huì)議提醒。

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

相關(guān)文章

  • goland設(shè)置控制臺(tái)折疊效果

    goland設(shè)置控制臺(tái)折疊效果

    這篇文章主要介紹了goland設(shè)置控制臺(tái)折疊效果,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-12-12
  • go語言使用pipe讀取子進(jìn)程標(biāo)準(zhǔn)輸出的方法

    go語言使用pipe讀取子進(jìn)程標(biāo)準(zhǔn)輸出的方法

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

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

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

    詳解Go strconv包

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

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

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

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

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

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

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

    golang網(wǎng)絡(luò)通信超時(shí)設(shè)置方式

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

    Golang中的Interface詳解

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

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

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

最新評(píng)論

涞水县| 慈利县| 华安县| 汕尾市| 扎囊县| 阜新| 齐河县| 宾川县| 肇东市| 遵化市| 得荣县| 清河县| 托克托县| 西贡区| 长岛县| 芷江| 宜丰县| 涟水县| 杨浦区| 孟津县| 宿州市| 宁都县| 宁波市| 商城县| 长顺县| 乌兰县| 沁阳市| 漳平市| 泰来县| 荔浦县| 平乐县| 枝江市| 磐石市| 高唐县| 莱西市| 九江市| 宁蒗| 山阴县| 兴国县| 罗定市| 黄龙县|