相关疑难解决方法(0)

如何从函数调用中获取返回值的指针?

我只需要一个指向time.Time的指针,所以下面的代码似乎无效:

./c.go:5:不能取时间地址.现在()

我只是想知道为什么?有没有办法做到这一点,除了先对变量赋值并获取变量的指针?

package main

import "time"
func main() {
    _ = &time.Now()
}
Run Code Online (Sandbox Code Playgroud)

pointers go

20
推荐指数
3
解决办法
6704
查看次数

将函数返回的值赋给指针

在Go中,如何将函数调用返回的值赋给指针?

考虑这个例子,注意time.Now()返回一个time.Time值(而不是指针):

package main

import (
    "fmt"
    "time"
)

type foo struct {
    t *time.Time
}

func main() {
    var f foo 

    f.t = time.Now()  // Fail line 15

    f.t = &time.Now() // Fail line 17

    tmp := time.Now() // Workaround
    f.t = &tmp

    fmt.Println(f.t)
}
Run Code Online (Sandbox Code Playgroud)

这两个都失败了:

$ go build
# _/home/jreinhart/tmp/go_ptr_assign
./test.go:15: cannot use time.Now() (type time.Time) as type *time.Time in assignment
./test.go:17: cannot take the address of time.Now()
Run Code Online (Sandbox Code Playgroud)

真的需要局部变量吗?这不是一个不必要的副本吗?

pointers go

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

标签 统计

go ×2

pointers ×2