在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)
真的需要局部变量吗?这不是一个不必要的副本吗?
归档时间: |
|
查看次数: |
175 次 |
最近记录: |