【小工具】一行代码写的加法计算工具(附代码)
Tofloor
poster avatar
huizq
deepin
2019-03-02 21:56
Author
加法是一个常见的需求。比如,周五晚上睡觉之前,你要估算周末的消费,你可能会去电影院看一场电影,可能会在外面吃一顿饭,还可能需要去商场买一些日用品。这时,你就需要用连续的加法来满足这个需求。
如果你是用手机的加法计算器,那么你很容易得出答案。但有时我们就坐在电脑旁边,而且不希望拿出手机进行加法计算。如果你用的不是笔记本电脑,或者你的笔记本电脑上有数字键盘,那么你也用不到这个小工具。
当且仅当你用的是笔记本电脑且没有数字键盘时:这时你用计算器去做连续加法运算就需要同时按SHIFT和+,或者手离开键盘,用鼠标点击加号完成加法。这就显得十分麻烦了。
为解决这个需求,我用一行代码写了一个小工具,名叫addCalc,使用方法如图所示:

输入的数字之间用一个空格隔开,输入完数字按下回车键即可求和,求和之后还可以继续输入新的数字再求和。
Windows直接回车就可以退出,Linux玩法就比较多了,任君选择。
addCalc.zip

什么?你用MacOS?那这真是不好意思,我没有Mac设备,所以没办法提供编译好的可执行文件。不过,你可以自行编译代码解决这个问题。
  1. fun main() {
  2.       while (true) readLine()!!.split(" ").map{ it.toInt() }.sum().let(::println)
  3. }
Copy the Code
这是一段kotlin代码,所以你需要去 github.com/JetBrains/kotlin/releases/tag/v1.3.11 下载对应平台的native编译器进行编译。
说明:
        while (true)是永真循环,readLine()是读取用户输入,!!是非空断言,split(" ")表示按一个空格分割字符串,用map遍历所有元素,用it代表集合中的每一个元素,将它们转成整数类型,即toInt(),然后用sum()函数求和,最后用let()函数传递到打印输出即可。

注意事项:
1. 你可以输入"1 2 3"求和,但不能输入"1 2 3 "求和。因为3后面多了一个空格会导致类型转换失败。
2. 你可以输入"1 2 3"求和,但不能输入"1  2 3"求和。因为数字之间只能是一个空格隔开,多个空格会导致类型转换失败。
3. Windows下回车直接退出的原理是:非空断言告诉程序用户的输入一定不为空,如果为空则程序会直接报错并结束进程。

如果你改进了这个程序,请公开你的代码,让更多的人受益,谢谢!

Reply Favorite View the author
All Replies
avatar
152******14
deepin
2019-03-03 04:31
#1
深度计算器是论坛一位坛友弄得,你搜搜。也许你俩可以交流。
Reply View the author