相关疑难解决方法(0)

如何在golang中将字符串转换为整数

我想在golang中将字符串转换为整数.但我不知道字符串的格式.例如,"10"- > 10,"65.0"- > 65,"xx"- > 0,"11xx" - > 11,"xx11" - > 0

我做了一些搜索并找到了strconv.ParseInt().但它无法处理"65.0".所以我必须检查字符串的格式.

有没有更好的办法?

casting type-conversion go

9
推荐指数
3
解决办法
2万
查看次数

Go中的惯用语类型转换

我正在玩Go,并想知道在Go中执行惯用类型转换的最佳方法是什么.基本上我的问题之间的自动类型转换中规定uint8,uint64float64.根据我对其他语言的经验,a uint8与a 的乘法uint64将产生一个uint64值,但在go中则不然.

这是我构建的一个示例,我问这是否是编写此代码的惯用方法,或者我是否缺少重要的语言结构.

package main

import ("math";"fmt")

const(Width=64)

func main() {

    var index uint32
    var bits uint8

    index = 100
    bits = 3

    var c uint64
    // This is the line of interest vvvv
    c = uint64(math.Ceil(float64(index * uint32(bits))/float64(Width)))
    fmt.Println("Test: %v\n", c)
}
Run Code Online (Sandbox Code Playgroud)

从我的观点来看,由于所有显式类型转换,上限值的计算似乎不必要复杂.

谢谢!

go

7
推荐指数
1
解决办法
2183
查看次数

5
推荐指数
1
解决办法
657
查看次数

寻找一种优雅的解析整数的方法

现在我正在执行以下操作以解析字符串中的整数,然后将其转换为int类型:

tmpValue, _ := strconv.ParseInt(str, 10, 64) //returns int64
finalValue = int(tmpValue)
Run Code Online (Sandbox Code Playgroud)

它非常冗长,并且绝对不是很漂亮,因为我还没有找到一种方法来在ParseInt电话中进行转换.有没有更好的方法呢?

go

5
推荐指数
1
解决办法
147
查看次数

ParseInt 未转换为所需的类型

这是我的代码:

包主

import (
    "fmt"
    "reflect"
    "strconv"
)

func main() {
   i, _ := strconv.ParseInt("10", 10, 8)
   fmt.Println(reflect.TypeOf(i))
}
Run Code Online (Sandbox Code Playgroud)

我预计i长度为 8 位( 的第三个参数strconv.ParseInt)。然而,它是 int64 (并且文档声明strconv.ParseInt将返回 int64)。

如果 ParseInt 总是返回 int64,那它还有什么意义(为什么不直接使用 Atoi 呢?)

go

2
推荐指数
2
解决办法
1869
查看次数

在Golang中将二进制值转换为字符串uint32

您好我想在golang中使用00000000000000000000000000001011转换为uint32

var v = "00000000000000000000000000001011"
fmt.Printf("%T\n", v)
c := []byte(v)
u := binary.LittleEndian.Uint32(c)
Run Code Online (Sandbox Code Playgroud)

但它不起作用.

type-conversion go

0
推荐指数
1
解决办法
737
查看次数

将字符串转换为uint16

我是新手,我一直在尝试将字符串“ 0x0000”转换为十六进制,到目前为止没有任何运气。这是我尝试过的:

import "strconv"

c, err := strconv.ParseUint("0x0000", 16, 32)
if err != nil {
    return err, nil
}
Run Code Online (Sandbox Code Playgroud)

引发错误:strconv.ParseUint: parsing "0x0000": invalid syntax

我也尝试过,uint16("0x0000")但显然我也无法将字符串直接转换为uint16。我敢肯定这是微不足道的,所以我们将不胜感激。谢谢。

string hex casting go

-1
推荐指数
1
解决办法
150
查看次数

标签 统计

go ×7

casting ×2

type-conversion ×2

atoi ×1

hex ×1

parseint ×1

string ×1