<!--{
"Title": "The Go Programming Language Specification",
- "Subtitle": "Version of September 17, 2012",
+ "Subtitle": "Version of September 18, 2012",
"Path": "/ref/spec"
}-->
<h3 id="Expression_statements">Expression statements</h3>
<p>
-Function calls, method calls, and receive operations
+With the exception of specific built-in functions,
+function and method <a href="#Calls">calls</a> and
+<a href="#Receive_operator">receive operations</a>
can appear in statement context. Such statements may be parenthesized.
</p>
ExpressionStmt = Expression .
</pre>
+<p>
+The following built-in functions are not permitted in statement context:
+</p>
+
+<pre>
+append cap complex imag len make new real
+unsafe.Alignof unsafe.Offsetof unsafe.Sizeof
+</pre>
+
<pre>
h(x+y)
f.Close()
<-ch
(<-ch)
+len("foo") // illegal if len is the built-in function
</pre>
as if <code>v</code> was declared via <code>var v = x</code>.
</p>
<p>
-The function <code>Offsetof</code> takes a selector (ยง<a href="#Selectors">Selectors</a>) denoting a struct
-field of any type and returns the field offset in bytes relative to the
+The function <code>Offsetof</code> takes a (possibly parenthesized) <a href="#Selectors">selector</a>
+denoting a struct field of any type and returns the field offset in bytes relative to the
struct's address.
For a struct <code>s</code> with field <code>f</code>:
</p>