1、编写源程序compute.go
/*
* 功能:利用命令参数进行加减乘除运算
* 日期:2015年6月18日
 */
// compute.go
package main
import (
    "fmt"
    "os" 
    "strconv"
)
var Usage = func() {
    fmt.Println("USAGE: <integer1> <operator> <integer2>")
    fmt.Println("EXAMPLE: 4 + 5")
    fmt.Println("EXAMPLE: 24 - 15")
    fmt.Println("EXAMPLE: 6 * 5")
    fmt.Println("EXAMPLE: 24 / 6")
}
func main() {
    args := os.Args // 获取命令行参数
    if len(args) != 4 {
        Usage()
    } else {
        switch args[2] {
        case "+":
            n1, err1 := strconv.Atoi(args[1])
            n2, err2 := strconv.Atoi(args[3])
            if err1 == nil && err2 == nil {
                result := n1 + n2
                fmt.Println(n1, "+", n2, "=", result)
            } else {
                Usage()
            }
        case "-":
            n1, err1 := strconv.Atoi(args[1])
            n2, err2 := strconv.Atoi(args[3])
            if err1 == nil && err2 == nil {
                result := n1 - n2
                fmt.Println(n1, "-", n2, "=", result)
            } else {
                Usage()
            }
        case "*":
            n1, err1 := strconv.Atoi(args[1])
            n2, err2 := strconv.Atoi(args[3])
            if err1 == nil && err2 == nil {
                result := n1 * n2
                fmt.Println(n1, "*", n2, "=", result)
            } else {
                Usage()
            }
        case "/":
            n1, err1 := strconv.Atoi(args[1])
            n2, err2 := strconv.Atoi(args[3])
            if err1 == nil && err2 == nil {
                result := n1 / n2
                fmt.Println(n1, "/", n2, "=", result)
            } else {
                Usage()
            }
        default:
            Usage()
        }
    }
}
2、生成可执行文件compute.exe
在命令行提示符后,输入 go build compute.go 即可。

3、运行可执行文件,传入命令行参数


不传入命令行参数,就会打印提示信息,告知用户正确用法:

4、小结 
(1)利用os.Args获得命令行参数
(2)利用strconv.Atoi()函数将字符串转换成整数。 
5、说明
compute 3 * 6 
四个命令行参数:
args[0] = "compute"
args[1] = "3" 
args[2] = "*" 
args[3] = "6" 
6、代码优化
/*
* 功能:利用命令参数进行加减乘除运算
* 日期:2015年6月18日
 */
// compute.go
package main
import (
    "fmt"
    "os"
    "strconv"
)
var Usage = func() {
    fmt.Println("USAGE: <integer1> <operator> <integer2>")
    fmt.Println("EXAMPLE: 4 + 5")
    fmt.Println("EXAMPLE: 24 - 15")
    fmt.Println("EXAMPLE: 6 * 5")
    fmt.Println("EXAMPLE: 24 / 6")
}
func main() {
    args := os.Args // 获取命令行参数
    if len(args) != 4 {
        Usage()
    } else {
        n1, err1 := strconv.Atoi(args[1])
        n2, err2 := strconv.Atoi(args[3])
        if err1 == nil && err2 == nil {
            switch args[2] {
            case "+":
                result := n1 + n2
                fmt.Println(n1, "+", n2, "=", result)
            case "-":
                result := n1 - n2
                fmt.Println(n1, "-", n2, "=", result)
            case "*":
                result := n1 * n2
                fmt.Println(n1, "*", n2, "=", result)
            case "/":
                result := n1 / n2
                fmt.Println(n1, "-", n2, "=", result)
            default:
                Usage()         
            }               
        } else {
            Usage()
        }
    }
 
7、在Eclipse里执行
选中compute.go,单击右键,选择【Run As】下的【Run Configurations...】

在【Arguments】文本框里输入命令行参数,比如 5 - 6,单击【Run】按钮:

Go程序:利用命令行参数做四则运算相关推荐

  1. python输入正方形边长值、计算其面积_尝试修改列6.2编写命令行参数解析的程序,解析命令行参数所输入边长的值,计算并输出正方形的周长和面积。_学小易找答案...

    [简答题] [单选题]ZigBee 中每个协调点最多可连接______个节点,一个ZigBee网络最多可容纳______个节点.( ) [资料题]DWord-Ans.pdf 索引和目录.pdf 完成效 ...

  2. Go语言程序的命令行参数

    获取命令行参数是程序功能多样化的必要前提. 这个例子展示Go语言如何获得程序的命令行参数. Go语言程序: // echoarg project main.go package mainimport ...

  3. Pycharm下运行调试Python项目时,当调试既需要给调试的程序传入命令行参数又需要程序在设置的断点处停下里查看变量时的解决方法

      今天在调试了一个复杂的Python项目,其中这个项目的调试需要事先从命令行读取参数,并且在调试期间需要再事先设置的断点处停下来.检查相关的变量.   问题是,在Pycharm的Terminal 输 ...

  4. 控制台程序接收命令行参数

    如果通过CreateProcess创建进程来调用控制台程序,那么在传递命令参数时需要加上 空格,如果不加上空格,argv是无法获取到参数的,示例如下主程序: nError = ::CreateProc ...

  5. Windows 系统文件资源管理器的命令行参数(如何降权打开程序,如何选择文件)

    大多数用户还是习惯使用 Windows 自带的文件资源管理器来管理文件,于是我们可以利用它的命令行参数来帮助我们做一些与之相关的交互. 本文会以实际的例子来说明如何使用 explorer.exe 的命 ...

  6. c语言程序的命令行输入,C程序获取命令行参数

    命令行参数 命令行界面中,可执行文件可以在键入命令的同一行中获取参数用于具体的执行命令.无论是Python.Java还是C等等,这些语言都能够获取命令行参数(Command-line argument ...

  7. 【linux】Valgrind工具集详解(八):Memcheck命令行参数详解

    [linux]Valgrind工具集详解(五):命令行详解中不够全,在此专门针对Memcheck工具中的命令行参数做一次详细的解释. Memcheck命令行选项 –leak-check=<no| ...

  8. python将argv作为参数,Python当中的命令行参数sys.argv[]的使用方法

    首先,命令行参数的英语是commond line arguments,这个十分重要,如果考试考到连它的英语都不认识就麻烦大了.命令行参数这个函数的作用是用于接收程序外部的数据和字符串,这些数据和字符串 ...

  9. python 命令行参数-Python命令行参数处理

    sys模块 sys模块代表了Python解释器,主要用于获取和Python解释器相关的信息,其中 sys.argv 可以获取命令行参数 在Python交互式解释器中可以先导入sys模块 import ...

最新文章

  1. ansible学习笔记
  2. [Erlang-0011][OTP] External Term Format
  3. Leetcode 234. 回文链表 解题思路及C++实现
  4. android retrofit入门,Android开发 retrofit入门讲解
  5. git命令详解( 八)
  6. [转载]Windowsnbsp;Servernbsp;2008nbsp;R2nbsp;之二十五ADnbsp;RMS信任策略
  7. 前端开发 常用选择符与权重0229
  8. echarts中国地图,设置地图外边框,内各省界线不同样式
  9. win10共享打印机搜索不到计算机,大师告诉您Win10搜不到共享打印机的操作方案...
  10. java一般用来开发什么_Java能做什么
  11. nextpolish安装_使用nextpolish对三代组装进行polish(v1.2.2版)
  12. 解决vim不能使用方向键和退格键问题
  13. Sketch快捷键大全 Sketch如何自定义快捷键?
  14. 画图软件Java实现(面向对象程序设计)
  15. 深度学习(9):FastFCN论文翻译与学习
  16. C/C++笔记之播放音乐的函数
  17. Wifi对人体有没有危害?
  18. 求职偶摘1,据说是高盛offer。
  19. WAP网站的推广方式(自整合篇)
  20. Java实现高数的收敛级数和不定积分求圆周率

热门文章

  1. ModelArts微认证零售客户分群知识点总结
  2. Zabbix的应用(6)----常见错误
  3. 鸟哥的私房菜Linux 学习笔记之 Bash语法
  4. 2021c语言教程,全国计算机等级考试二级教程——C语言程序设计(2021年版)
  5. Convolutional networks for fast, energy-efficient neuromorphic computing
  6. Rmarkdown与Rnotebook使用心得
  7. python爬取两个网站_python-2:爬取某个网页(虎扑)帖子的标题做词云图
  8. 如何导入外部Git仓库到中国源代码托管平台(Git@OSC)
  9. 如何使用IntelliJ IDEA搭建spark开发环境(上)
  10. 在微型计算机控制系统中常用的报警方式中,微机控制技术复习题