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. Cracking the coding interview--Q2.2
  2. UI Automation的两个成熟的框架(QTP 和Selenium)
  3. C++中为何析构函数总是虚函数?
  4. SQL语句中各个部分的执行顺序(转)
  5. PDF.NET数据开发框架实体类操作实例(for PostgreSQL,并且解决自增问题)
  6. strcmp可以比较数组么_大家都用过百度云,但你面试过百度云么
  7. html文件打开系统错误,win7打开word提示“无法打开文件Normal因为内容有错误”的两种解决方法...
  8. MySQL常见面试题与答案
  9. html 网站右侧导航,页面右侧固定导航.html
  10. JS学习笔记 等于和包装对象
  11. ASP.NET AJAX:Ajax验证(ajax+Handler处理)
  12. php 设计模式系列,一看就懂系列之 php设计模式(一)-Go语言中文社区
  13. 如何在微博侧栏中加入自己的微博[js]
  14. 跳频信号检测与参数估计技术研究
  15. shardingsphere5.0 解决第一次执行sql慢的问题
  16. Spring Boot---(10)SpringBoot整合RabbitMQ
  17. 微信云托管-填坑之旅
  18. Matlab R2012b 重复激活,License 失效问题解决
  19. vMotion 操作失败进度卡在14% ,报错: Operation Timed out
  20. 点击输入框,输入法把输入框挡住了

热门文章

  1. MySQL中单行函数concat_MySQL内置函数-单行函数(字符函数)
  2. Effective Java第二版 读后感
  3. IDEA和VS code设置默认换行符为LF
  4. day21 java的数字类
  5. html倒计时timer,js如何使用定时器实现倒计时功能
  6. elastichd的使用教程_ElasticSearch可视化工具ElasticHD安装
  7. knife4j导出html有误,knife4j无法生成完整的响应说明
  8. gfs mysql_linux搭建gfs系统--iscsi+GFS实现网络存储
  9. 扑捉和捕捉的区别照相_扑捉和捕捉的区别照相
  10. android蓝牙聊天设备,Android蓝牙开发——实现蓝牙聊天