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 相关文章推荐
基于go interface{}==nil 的几种坑及原理分析
Apr 24 Golang
解决Golang time.Parse和time.Format的时区问题
Apr 29 Golang
golang日志包logger的用法详解
May 05 Golang
golang gopm get -g -v 无法获取第三方库的解决方案
May 05 Golang
完美解决golang go get私有仓库的问题
May 05 Golang
goland 设置project gopath的操作
May 06 Golang
聊聊golang中多个defer的执行顺序
May 08 Golang
go 实现简易端口扫描的示例
May 22 Golang
Golang并发操作中常见的读写锁详析
Aug 30 Golang
Golang 链表的学习和使用
Apr 19 Golang
Go获取两个时区的时间差
Apr 20 Golang
Golang bufio详细讲解
Apr 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
php中文字母数字验证码实现代码
2008/04/25 PHP
php递归获取目录内文件(包含子目录)封装类分享
2013/12/25 PHP
PHP判断数据库中的记录是否存在的方法
2014/11/14 PHP
Laravel Eloquent分表方法并使用模型关联的实现
2019/11/25 PHP
脚本合并提升javascript性能示例
2014/02/24 Javascript
IE中鼠标经过option触发mouseout的解决方法
2015/01/29 Javascript
jQuery实现表单步骤流程导航代码分享
2015/08/28 Javascript
JavaScript学习笔记整理之引用类型
2016/01/22 Javascript
JS组件系列之Bootstrap Icon图标选择组件
2016/01/28 Javascript
JQuery 进入页面默认给已赋值的复选框打钩
2017/03/23 jQuery
Vue.js实战之Vuex的入门教程
2017/04/01 Javascript
vue.js指令和组件详细介绍及实例
2017/04/06 Javascript
全新打包工具parcel零配置vue开发脚手架
2018/01/11 Javascript
对Vue- 动态元素属性及v-bind和v-model的区别详解
2018/08/27 Javascript
nodejs异步编程基础之回调函数用法分析
2018/12/26 NodeJs
浅谈目前可以使用ES10的5个新特性
2019/06/25 Javascript
JavaScript实现文件下载并重命名代码实例
2019/12/12 Javascript
基于Python实现定时自动给微信好友发送天气预报
2018/10/25 Python
python使用PyQt5的简单方法
2019/02/27 Python
超简单使用Python换脸实例
2019/03/27 Python
Python、 Pycharm、Django安装详细教程(图文)
2019/04/12 Python
十个Python练手的实战项目,学会这些Python就基本没问题了(推荐)
2019/04/26 Python
python爬虫豆瓣网的模拟登录实现
2019/08/21 Python
Python检查 云备份进程是否正常运行代码实例
2019/08/22 Python
使用Python给头像加上圣诞帽或圣诞老人小图标附源码
2019/12/25 Python
tensorflow之自定义神经网络层实例
2020/02/07 Python
python实现信号时域统计特征提取代码
2020/02/26 Python
对Matlab中共轭、转置和共轭装置的区别说明
2020/05/11 Python
Python SQLAlchemy库的使用方法
2020/10/13 Python
生物有机护肤品:Aurelia Probiotic Skincare
2018/01/31 全球购物
英国最受欢迎的在线隐形眼镜商店:VisionDirect.co.uk
2018/12/06 全球购物
旷课检讨书3000字
2014/02/04 职场文书
文明村创建实施方案
2014/03/27 职场文书
献爱心标语
2014/06/21 职场文书
教师党的群众路线教育实践活动剖析材料
2014/10/09 职场文书
2015年高考寄语或鼓励的话
2015/03/23 职场文书