3

好的,所以我在将字符串类型转换为字节写入时遇到了困难。这是编译器错误:

不能在函数参数中使用 row[5](类型 uint8)作为字符串类型

不能在函数参数中使用 &v (type *Field) 作为 int 类型

这是第 [5] 行的示例:$15,000.00

我已经声明了一个结构:

type Field struct {
Eia uint8
}

这是主要的实现:

for {
    record, err := reader.Read()
    if err == io.EOF {
        break
    } else if err != nil {
        panic(err)
    }

    var v Field
    for _, row := range record {
        eia, err := strconv.ParseInt(row[5], 8, &v) // Estimated Incoming Amount
        if err == nil {
            fmt.Printf("%+v\n", v)
        } else {
            fmt.Println(err)
            fmt.Printf("%+v\n", v)
        }

谁能向我解释一下 strconv 如何将行转换为整数?

4

1 回答 1

3

如果你在http://play.golang.org/上做了一个完整的例子,给你一个完整的解决方案会更容易。

ParseInt() 接受字符串(您可能必须这样做string(row[5]))、基数(您可能指的是 10)和位大小(应该放 8 的地方)。

它重新调整一个 int (eia),它不会将它放入结构中,因为它看起来像你正在尝试。

而是做if err == nil { v.Eia = eia }.

于 2013-03-25T21:18:30.200 回答