浅谈Go中数字转换字符串的正确姿势
作者:KevinYan 发布时间:2024-05-08 10:51:42
标签:Go,数字,字符串
在许多语言中,你可以轻松地将任何数据类型转换为字符串,只需将其与字符串连接,或者使用类型转换表达式即可。但是,如果你在Go中尝试执行似乎很明显的操作(例如将int转换为字符串),你不太可能获得预期的效果。
比如下面:
string(120)
你期望返回的结果是什么?如果你有使用其他编程语言的经验,那么大多数人的猜测是“ 123”。相反,在Go中上面的类型转换会得到“ E”之类的值,那根本不是我们想要的。因为string()会直接把字节或者数字转换为字符的UTF-8表现形式。
所以在Go中将byte或者int类型的值转换为数字的字符串表现形式的正确方法是使用strconv包中的方法,比如strconv.Itoa。
strconv.Itoa(120)// 返回"120"
下面的例子,可以试着把strconv.Itoa改成string看看得到什么输出。
package main
import (
"fmt"
"strings"
"strconv"
)
type IPAddr [4]byte
func (p IPAddr) String() string {
var ipParts []string
for _, item := range p {
ipParts = append(ipParts, strconv.Itoa(int(item)))
}
return strings.Join(ipParts, ".")
}
func main() {
hosts := map[string]IPAddr{
"loopback": {127, 0, 0, 1},
"googleDNS": {8, 8, 8, 8},
}
for name, ip := range hosts {
fmt.Printf("%v: %v\n", name, ip)
}
}
来源:https://segmentfault.com/a/1190000020646282


猜你喜欢
- 测试环境 硬件:CPU 酷睿双核T5750 内存:2G 软件:Windows server 2003 + sql server 2005 O
- 今天运行程序时,在Oracle中输入SQL语句:select * from USERS as u ,程序报错输入select * from
- 本文实例讲述了python实现控制电脑鼠标和键盘,登录QQ的方法。分享给大家供大家参考,具体如下:import osfrom pynput.
- 一、scapy简介与安装scapy(http://www.secdev.org/projects/scapy/)是一个强大的交互式数据包处理
- 前段时间自学了python,作为新手就想着自己写个东西能练习一下,了解到python编写爬虫脚本非常方便,且最近又学习了MongoDB相关的
- 前不久有个正要毕业的网友给我发邮件,他毕业设计需要实现锁屏的效果,但是他没有能看懂我之前发布的对话框源码,他问能不能把锁屏相关代码说明下,我
- 本文实例讲述了Python从序列中移除重复项且保持元素间顺序不变的方法。分享给大家供大家参考,具体如下:问题:从序列中移除重复的元素,但仍然
- 官方文案:https://docs.python.org/zh-cn/3/library/hashlib.htmlhashlib --- 安
- 主要是运用java.util.regex类。 import java.util.regex.Matcher;import java
- 如何制作一个弹出式的调查窗口?执行下面这段ASP代码: <% &n
- Go 命令Go语言自带有一套完整的命令操作工具,你可以通过在命令行中执行go来查看它们:图1.3 Go命令显示详细的信息这些命令对于我们平时
- 偶然在网上发现itchat这个框架,itchat是一个开源的微信个人号接口,它使python调用微信变得非常简单。看到网上有人发自己微信好友
- 前言本文提供获取视频时长的python代码,精确到毫秒,一如既往的实用主义。环境依赖 ffmpeg环境安装,可以参考:window
- 本文实例分析了python字符串连接方法。分享给大家供大家参考,具体如下:python字符串连接有几种方法,把大家可能用到的列出来,第一个方
- 本文实例讲述了Symfony2框架表单用法。分享给大家供大家参考,具体如下:对于一个Web开发者来说,处理HTML表单是一个最为普通又具挑战
- 本文实例讲述了Python3.5 Json与pickle实现数据序列化与反序列化操作。分享给大家供大家参考,具体如下:1、Json:不同语言
- FTP服务器FTP服务器是在互联网上提供文件存储和访问服务的计算机,它们依照FTP协议提供服务。FTP是File Transfer Prot
- 本文教大家使用了laydate插件设置开始和结束时间,供大家参考,具体内容如下用的laydate插件是layDate-v5.0.6,是新版本
- 这是一个非常简单的解决方案,柱状图中每一条柱都是一个 div,数据的大小呈现在 div 的宽或高上。 查看演示 例子下载实现的原理
- 目录一.准备工作二.预览1.主界面2.翻译3.支持多种语言哦三.源代码3.1 My_Translator-v2.0.py3.2 Transl