I see the following statements from camlistore(http://code.google.com/p/camlistore/source/browse/pkg/cacher/cacher.go).
var (
_ blobref.StreamingFet
(*T)(nil)
is a Conversion. In this case it stands for a typed nil, ie. the same value which, for example
var p *T
has before assigning anything to it.
The standard syntax of a conversion is T(expr)
, but the priority of the *
would bind it wrongly in
*T(expr)
This syntax means dereferencing the return value of function T
with one argument expr
. That's why the conversion has an alternative syntax:
(T)(expr)
where T
can of course be *U
. Therefore
(*U)(expr)
is the generalized form of what you see in the Camlistore repository.