• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

使用go实现基于命令行的计算器程序

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

项目目录结构

calcs.go源文件

package main

import (
	"fmt"
	"os"
	"strconv"
	"myapp/simplemath"
)

var Usage = func() {
	fmt.Println("USAGE: calcs command [arguments] ...")
	fmt.Println("\nThe commands are:\n\tadd\tAddition of two values.\n\tsqrt\tSquare root of a ono-negative value.")
}

func main()  {
	args := os.Args//接受命令行参数
	if args == nil || len(args) < 3 {
		Usage()
		return
	}

	switch args[1] {
	case "add":
		if len(args) != 4{
			fmt.Println("USAGE:calcs add <integer1> <interger2>")
			return
		}
		v1,err1 := strconv.Atoi(args[2])
		v2,err2 := strconv.Atoi(args[3])
		if err1 != nil || err2 != nil {
			fmt.Println("USAGE: calcs add <integer1> <integer2>")
			return
		}
		ret := simplemath.Add(v1,v2)
		fmt.Println("Result: ",ret)
	case "sqrt":
		if len(args) != 3 {
			fmt.Println("USAGE: calcs sqrt <integer>")
		}
		v , err := strconv.Atoi(args[2])
		if err != nil {
			fmt.Println("USAGE: calcs sqrt <integer>")
			return
		}
		ret := simplemath.Sqrt(v)
		fmt.Println("Result: ",ret)
	default:
		Usage()
	}
}

add.go源文件

package simplemath

func Add (a int,b int) int {
	return a + b
}

add_test.go源文件,测试程序

package simplemath

import "testing"

func TestAdd(t *testing.T) {
	r := Add(1,2)
	if r != 3 {
		t.Errorf("Add(1,2) failed. Got %d,expected 3.",r)
	}
	println(r)
}

sqrt.go源文件

package simplemath

import (
	"math"
)

func Sqrt(i int) int {
	v := math.Sqrt(float64(i))
	return int(v)
}

sqrt_test.go源文件,测试程序

package simplemath

import "testing"

func TestSqrt(t *testing.T) {
	v := Sqrt(16)
	if v != 4 {
		t.Errorf("Sqrt(16) failed. Got %v,expected 4.",v)
	}
	println(v)
}

然后编译calcs.go

测试结果


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
****-go专业数据结构与算法-Go语言发布时间:2022-07-10
下一篇:
龙芯GO!龙芯平台上构建Go语言环境指南发布时间:2022-07-10
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap