这段代码使用的是地址类型?

时间:2014-06-12 01:36:04

标签: go

https://code.google.com/p/goauth2/source/browse/oauth/oauth.go#99处的代码声明了这种类型:

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

建议使用以下内容:

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

我不明白为什么这段代码会使用这种类型的地址以及为什么在Go中甚至可以使用。我是新手。我以为那些类型是针对编译器的,不是吗?请帮忙。

2 个答案:

答案 0 :(得分:4)

  

The Go Programming Language Specification

     

Composite literals

     

复合文字构造结构,数组,切片和的值   映射并在每次评估时创建新值。他们包括   值的类型后跟一个大括号括号的复合列表   元素。元素可以是单个表达式或键值对。

     

鉴于声明

type Point3D struct { x, y, z float64 }
     

一个人可以写

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

获取复合文字的地址会生成指向a的指针   文字值的唯一实例。

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

这是使用指向复合文字的指针的一个例子。

答案 1 :(得分:3)

这是取Config类型的新实例的地址,而不是类型本身的地址。