Go 实现英尺和米的简单单位换算方式


Posted in Golang onApril 29, 2021

看代码吧~

package main 
import (
    "fmt"
    "os"    
    "strconv"
)
 
type Feet float64
type Meter float64
 
func main() {
    var transType string = os.Args[2]
    var transferObject string = os.Args[1]
    parseObj, _ := strconv.ParseFloat(transferObject, 64)
 
    if transType == "feet" {
        // transfer to meter
        fmt.Println(toFeet(Meter(parseObj)))
    } else {
        fmt.Println(toMeter(Feet(parseObj)))
    } 
} 
 
func toMeter(feet Feet) Meter {
    return Meter(feet * 0.3048)
}
 
func toFeet(meter Meter) Feet {
    return Feet(meter * 1 / 0.3048)
}  
// 保存后 go run test.go 1 feet 输出1米=多少英尺

补充:golang go语言中 对文件大小字节单位的换算 EB TB GB MB KB B 保留小数

看代码吧~

// 字节的单位转换 保留两位小数
func formatFileSize(fileSize int64) (size string) {
   if fileSize < 1024 {
      //return strconv.FormatInt(fileSize, 10) + "B"
      return fmt.Sprintf("%.2fB", float64(fileSize)/float64(1))
   } else if fileSize < (1024 * 1024) {
      return fmt.Sprintf("%.2fKB", float64(fileSize)/float64(1024))
   } else if fileSize < (1024 * 1024 * 1024) {
      return fmt.Sprintf("%.2fMB", float64(fileSize)/float64(1024*1024))
   } else if fileSize < (1024 * 1024 * 1024 * 1024) {
      return fmt.Sprintf("%.2fGB", float64(fileSize)/float64(1024*1024*1024))
   } else if fileSize < (1024 * 1024 * 1024 * 1024 * 1024) {
      return fmt.Sprintf("%.2fTB", float64(fileSize)/float64(1024*1024*1024*1024))
   } else { //if fileSize < (1024 * 1024 * 1024 * 1024 * 1024 * 1024)
      return fmt.Sprintf("%.2fEB", float64(fileSize)/float64(1024*1024*1024*1024*1024))
   }
}

以上为个人经验,希望能给大家一个参考,也希望大家多多支持三水点靠木。如有错误或未考虑完全的地方,望不吝赐教。

Golang 相关文章推荐
Golang二维切片初始化的实现
Apr 08 Golang
golang 在windows中设置环境变量的操作
Apr 29 Golang
解决golang结构体tag编译错误的问题
May 02 Golang
golang elasticsearch Client的使用详解
May 05 Golang
Goland使用Go Modules创建/管理项目的操作
May 06 Golang
go mod 安装依赖 unkown revision问题的解决方案
May 06 Golang
Golang实现AES对称加密的过程详解
May 20 Golang
Golang二维数组的使用方式
May 28 Golang
使用GO语言实现Mysql数据库CURD的简单示例
Aug 07 Golang
Go Plugins插件的实现方式
Aug 07 Golang
Go语言基础函数基本用法及示例详解
Nov 17 Golang
Go语言特点及基本数据类型使用详解
Mar 21 Golang
Golang 空map和未初始化map的注意事项说明
彻底理解golang中什么是nil
基于Go Int转string几种方式性能测试
Apr 28 #Golang
Go语言中break label与goto label的区别
golang 如何用反射reflect操作结构体
Apr 28 #Golang
golang 生成对应的数据表struct定义操作
Apr 28 #Golang
golang 如何通过反射创建新对象
Apr 28 #Golang
You might like
thinkphp学习笔记之多表查询
2014/07/28 PHP
Yii 快速,安全,专业的PHP框架
2014/09/03 PHP
学习php设计模式 php实现工厂模式(factory)
2015/12/07 PHP
PHP实现模拟http请求的方法分析
2017/12/20 PHP
PHP异步进程助手async-helper
2018/02/05 PHP
JS IE和FF兼容性问题汇总
2009/02/09 Javascript
jquery异步调用页面后台方法&amp;#8207;(asp.net)
2011/03/01 Javascript
js中数组(Array)的排序(sort)注意事项说明
2014/01/24 Javascript
jQuery实现的简单折叠菜单(折叠面板)效果代码
2015/09/16 Javascript
JS基于Mootools实现的个性菜单效果代码
2015/10/21 Javascript
深入浅析JavaScript中prototype和proto的关系
2015/11/15 Javascript
Angular中ng-bind和ng-model的区别实例详解
2017/04/10 Javascript
五步轻松实现JavaScript HTML时钟效果
2020/03/25 Javascript
微信小程序图片选择区域裁剪实现方法
2017/12/02 Javascript
尝试自己动手用react来写一个分页组件(小结)
2018/02/09 Javascript
讲解vue-router之命名路由和命名视图
2018/05/28 Javascript
深入浅析var,let,const的异同点
2018/08/07 Javascript
了解javascript中let和var及const关键字的区别
2019/05/24 Javascript
详解vue父子组件关于模态框状态的绑定方案
2019/06/05 Javascript
AngularJs的$http发送POST请求,php无法接收Post的数据问题及解决方案
2020/08/13 Javascript
[03:00]DOTA2-DPC中国联赛1月18日Recap集锦
2021/03/11 DOTA
Python多线程中阻塞(join)与锁(Lock)使用误区解析
2018/04/27 Python
python根据txt文本批量创建文件夹
2020/12/08 Python
python自动化测试无法启动谷歌浏览器问题
2019/10/10 Python
Pycharm 2019 破解激活方法图文详解
2019/10/11 Python
解决pandas展示数据输出时列名不能对齐的问题
2019/11/18 Python
pycharm如何使用anaconda中的各种包(操作步骤)
2020/07/31 Python
美国在线购买空气净化器、除湿器、加湿器网站:AllergyBuyersClub
2021/03/16 全球购物
《狼和小羊》教学反思
2014/04/20 职场文书
学雷锋日活动总结
2015/02/06 职场文书
2015年度党员个人总结
2015/02/14 职场文书
工程技术负责人岗位职责
2015/04/13 职场文书
离婚上诉状范文
2015/05/23 职场文书
教师节获奖感言
2015/07/31 职场文书
python 爬取京东指定商品评论并进行情感分析
2021/05/27 Python
Redis高可用集群redis-cluster详解
2022/03/20 Redis