dsk920417 2014-06-12 01:36
浏览 32
已采纳

此代码使用类型的地址?

the code at https://code.google.com/p/goauth2/source/browse/oauth/oauth.go#99 declares this type:

package oauth
...
type Config struct {...}
...

the suggested use of this is following:

var config = &oauth.Config{...}

I do not understand why this code takes the address of this type and why this is even possible in Go. I am a newbie. I thought that types are for the compiler, no? Please help.

  • 写回答

2条回答 默认 最新

  • douxuan3095 2014-06-12 03:57
    关注

    The Go Programming Language Specification

    Composite literals

    Composite literals construct values for structs, arrays, slices, and maps and create a new value each time they are evaluated. They consist of the type of the value followed by a brace-bound list of composite elements. An element may be a single expression or a key-value pair.

    Given the declaration

    type Point3D struct { x, y, z float64 }
    

    one may write

    origin := Point3D{}         // zero value for Point3D
    

    Taking the address of a composite literal generates a pointer to a unique instance of the literal's value.

    var pointer *Point3D = &Point3D{y: 1000}
    

    It's an example of the use of a pointer to a composite literal.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥30 关于用python写支付宝扫码付异步通知收不到的问题
  • ¥50 vue组件中无法正确接收并处理axios请求
  • ¥15 隐藏系统界面pdf的打印、下载按钮
  • ¥15 MATLAB联合adams仿真卡死如何解决(代码模型无问题)
  • ¥15 基于pso参数优化的LightGBM分类模型
  • ¥15 安装Paddleocr时报错无法解决
  • ¥15 python中transformers可以正常下载,但是没有办法使用pipeline
  • ¥50 分布式追踪trace异常问题
  • ¥15 人在外地出差,速帮一点点
  • ¥15 如何使用canvas在图片上进行如下的标注,以下代码不起作用,如何修改