Go 中的 int 字符串? [复制]

2023-12-06

我真的认为这会很简单:

string(myInt)

看来不是。

我正在编写一个函数,它接受一个整数切片,并将每个整数附加到一个字符串中 - 并在每个整数之间添加一个分隔符。这是我的代码。

func(xis *Int16Slice) ConvertToStringWithSeparator(separator string) string{
    var buffer bytes.Buffer
    for i, value := range *xis{
        buffer.WriteString(string(value))
        if i != len(*xis) -1 {
            buffer.WriteString(separator)
        }
    }
    return buffer.String()
}

请阅读下面的句子。这不是重复的Go 中如何将 int 值转换为字符串?- 因为 : 我知道诸如 strconv.Itoa 函数之类的东西,但它似乎只适用于“常规”整数。它不支持 int16


您可以使用strconv.Itoa (or strconv.FormatInt如果性能至关重要)通过简单地转换int16 to an int or int64, 例如 (去游乐场):

x := uint16(123)
strconv.Itoa(int(x))            // => "123"
strconv.FormatInt(int64(x), 10) // => "123"

注意strconv.FormatInt(...)根据一个简单的基准测试可能会稍微快一些:

// itoa_test.go
package main

import (
  "strconv"
  "testing"
)

const x = int16(123)

func Benchmark_Itoa(b *testing.B) {
  for i := 0; i < b.N; i++ {
    strconv.Itoa(int(x))
  }
}

func Benchmark_FormatInt(b *testing.B) {
  for i := 0; i < b.N; i++ {
    strconv.FormatInt(int64(x), 10)
  }
}

Run as $ go test -bench=. ./itoa_test.go:

goos: darwin
goarch: amd64
Benchmark_Itoa-8            50000000            30.3 ns/op
Benchmark_FormatInt-8       50000000            27.8 ns/op
PASS
ok      command-line-arguments  2.976s
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Go 中的 int 字符串? [复制] 的相关文章

随机推荐

  • ADL 何时应用?

    有3个例子 I typedef int foo namespace B struct S operator int return 24 int foo B S s return 0 int main int t foo B S 24 ADL
  • ZF2 apigility - 我们如何验证 json 数据中的集合

    如何使用 Apigility 获取经过验证的 json 值 例如 我需要验证user id under users集合在以下json数据中 log type split food meal type Break Fast meal date
  • 我可以在oracle中从月到日更改范围间隔分区吗

    我有一个表 其分区如下并具有数百万行数据 表大小为 120 GB PARTITION BY RANGE Read time INTERVAL NUMTOYMINTERVAL 1 MONTH 现在我想用现有数据和未来数据更改为这种分区策略 表
  • 使用 JMS 发送消息在退出时挂起

    我正在尝试创建一个 Java 应用程序客户端项目 该项目将 JMS 消息发送到 Glassfish 服务器上的队列 问题是应用程序发送消息后 它在应该退出时挂起 消息传输成功 但由于某种原因应用程序没有退出 我尝试过调试该应用程序 并且可以
  • 当使用 get-content 回显到屏幕时,如何使 powershell 能够解释 ansi 颜色代码?

    我有一个日志文件 其中包含各种文本周围的 ansi 颜色代码 我使用 powershell 语言命令将其回显到控制台 get content logfile log wait 这样我就可以看到最新的日志更改 但是 所有 ansi 颜色代码都
  • 从 WooCommerce 中的所有优惠券中排除产品

    我在互联网上进行了搜索 但尽管有无数人问这个问题 但似乎没有任何答案 有什么办法可以从所有优惠券中排除特定产品吗 我知道你可以在优惠券级别上做到这一点 但这相当混乱 特别是因为很多人都有自动优惠券 几个人创建优惠券等 TLDR 任何使产品排
  • 制作一个位于内容区域之外的 div,但在浏览器窗口缩小时不会导致水平滚动条出现

    假设您有一个网站 其正文背景颜色为红色 内容区域为白色背景 宽度为 1 000 像素 现在 假设您希望内容区域上有一个投影 该投影在内容区域和红色背景的交界处最暗 并且当它从左侧离开左侧和从右侧离开右侧时变得不那么不透明 它基本上看起来像这
  • 未捕获的异常“Swift_TransportException”,消息为“无法与主机 smtp.gmail.com 建立连接 [连接超时 #110]”

    我已经在谷歌中搜索过它并尝试了这里的所有建议堆栈溢出但我仍然得到致命错误 我在用SwiftMailer用于发送和email to GMAIL 它在我的本地主机上完美运行 但是当我上传它并尝试时它给了我一个致命错误 这是我的代码的一部分 re
  • 如何给请求设置Tag并从Response Volley异步请求中获取?

    我有一个带有多个 REST Api 的 Android 应用程序 API 使用 Volley 库进行管理 响应正在得到 并且运行良好 但是当我发出异步请求时 我无法识别每个请求的响应 我的请求方法是这样的 private void http
  • 调整输入文本区域的大小

    我想创建一个自动增长的文本区域 所以我使用this指导 它运行良好 但有一个小问题 当您插入大文本并删除它们时 文本区域的大小超出了应有的大小 每插入一个字符 大小就会减少 1 2 像素 因此插入几个字符后 高度就会再次恢复正常 要重新创建
  • 什么是连续内存块?

    就像标题一样 什么是连续内存块 这是一个由 5 个字节组成的连续内存块 从位置 1 到位置 5 它表示内存中在一起的字节 浅蓝色 它们之间没有间隙字节 白色 这是一组不连续的感兴趣的五个字节 它被分成三组字节 黄色 在位置 4 和 6 处有
  • 回发后下拉不保留所选值

    我正在使用经典的 asp 我有一个下拉列表 用户可以选择然后按提交 他们按下提交后 下拉列表将返回默认值 而不是他们选择的值 无论如何 是否可以在回发之间保持下拉状态 而不是返回默认状态 如果需要可以发布代码示例 谢谢 您必须根据用户发布的
  • 重定向在 unix 内部是如何工作的

    让我们举个例子 我有一个名为 a out 的可执行文件 它包含将一些文本打印到 printf 的 STDOUT cos 的二进制信息 所以当我给出 a out 时 我在控制台 STDOUT 上看到 printf 的输出 假设我在控制台中执行
  • KeyguardManager FLAG_DISMISS_KEYGUARD 服务

    当屏幕打开时 我想检查电源按钮是否激活了它 如果是 它将自动关闭键盘保护并运行吐司 当屏幕关闭时 键盘保护将重新启用 代码到这里为止都有效 但是 当屏幕关闭时 我按下 音量调高 按钮 屏幕就会打开 但它进入检测到 电源 按钮被按下的循环 这
  • ORA-00911: 无效字符 Toad

    我用的是蟾蜍11 5 当我运行多个 truncate 语句时 它给出一个错误ORA 00911 无效字符 truncate table employees truncate table employees edit history trun
  • 如何在 IIS7 中设置应用程序的默认页面?

    我将 Web 应用程序部署到 IIS7 一切正常 但是 我希望它自动转到 www xxxxxx com views root default aspx 而不是输入真正的起始页的 url 我该怎么做呢 只需转到 web config 文件并添
  • 允许 python 子进程的多个输入

    我有一个与几年前提出的问题几乎相同的问题 有两个输入的 Python 子进程收到了一个答案但没有实施 我希望这份报告可以帮助我和其他人澄清问题 如上所述 我想使用 subprocess 来包装一个需要多个输入的命令行工具 特别是 我想避免将
  • sizeof() 如何通过引用参数传递

    我将一个数组传递给函数并尝试查找该数组的长度 但结果却出乎意料 有人可以解释一下吗 int main int array 10 0 func array return 0 void func int arr printf length of
  • 使用 Vue.js 在 .then 函数中输入错误

    我有一个获取请求来检测用户是否是管理员 我的问题是我想使用显示一个按钮v if检查它是真是假 默认情况下该值设置为false Data 然后我们得到了按钮 And the then in beforeCreate 你需要使用一个箭头函数以保
  • Go 中的 int 字符串? [复制]

    这个问题在这里已经有答案了 我真的认为这会很简单 string myInt 看来不是 我正在编写一个函数 它接受一个整数切片 并将每个整数附加到一个字符串中 并在每个整数之间添加一个分隔符 这是我的代码 func xis Int16Slic