Golang 捕获 Ctrl+C 信号
今天在用 Golang 写一个小工具,类似控制台输入数据然后显示结果,不过打包出来的 exe 文件在得出结果之后就马上关闭窗口了,除非使用命令行来打开文件,网上查了下,Golang 可以捕获 Ctrl+C 信号,从而阻塞程序,简单记录下。
package main
import (
"fmt"
"os"
"os/signal"
)
func main() {
go input()
exit := make(chan os.Signal, 1)
done := make(chan bool)
signal.Notify(exit, os.Interrupt)
go func() {
for _ = range exit {
fmt.Println("\n")
done <- true
}
}()
<-done
}
func input() {
var sum, input float64
var numbers []float64
sum = 0
numbers = make([]float64, 0)
fmt.Println("Number:")
for {
input = 0
fmt.Scanln(&input)
if input == 0 {
break
}
numbers = append(numbers, input)
}
for _, v := range numbers {
sum += v
}
fmt.Println("Result: ", sum)
fmt.Println("Press ctrl+c to exit")
}