此代码使用类型的地址?

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.

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.

This is taking the address of a new instance of the Config type, not the address of the type itself.