首页 >后端开发 >Golang >将 int64 值设置为 *int64 指针

将 int64 值设置为 *int64 指针

WBOY
WBOY转载
2024-02-10 09:06:22607浏览

将 int64 值设置为 *int64 指针

php小编西瓜在这里为大家介绍一个关于将 int64 值设置为 int64 指针的问题。在编程中,我们经常需要操作指针来修改变量的值。而对于 int64 类型的变量,我们可以通过将其设置为 int64 指针来实现对其值的修改。这种操作在某些情况下非常有用,可以帮助我们更灵活地处理数据。接下来,让我们详细解析一下这个问题并给出相应的示例代码。

问题内容

我需要映射结构来创建 json 结构。 json 中的collector_id 属性应该能够采用null 值或int 值。 我有以下代码:

type purchaseInfo struct {
    CollectorID *int64 `json:"collector_id"`
}

func mapPurchaseInfo(collectorID int64) purchaseInfo {
    var collectorIDToSend *int64
    if collectorID < 0 {
        collectorIDToSend = nil
    } else {
        collectorIDToSend = collectorID
    }

    return purchaseInfo{
        CollectorID: collectorIDToSend,
    }
}

此代码无法编译,无法将collectorid分配给collectoridtosend。 有办法做到这一点吗?

谢谢!

解决方法

  • 在mappurchaseinfo函数的声明中,为了正确地将参数传入的值分配给collectoridtosend,必须使用&运算符来检索collectorid的内存地址。
  • 构造purchaseinfo返回变量时,可以直接放入结构体的字段,如示例所示。
type purchaseInfo struct {
        CollectorID *int64 `json:"collector_id"`
    }

    func mapPurchaseInfo(collectorID int64) purchaseInfo {
        var collectorIDToSend *int64
        if collectorID < 0 {
            collectorIDToSend = nil
        } else {
            collectorIDToSend = &collectorID
        }

        return purchaseInfo{
            CollectorID: collectorIDToSend,
        }
    }

以上是将 int64 值设置为 *int64 指针的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文转载于:stackoverflow.com。如有侵权,请联系admin@php.cn删除