<p>I want to set an array of bytes. I'm writing this:</p>
<pre><code>var FooArr [size]byte = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
</code></pre>
<p>Goland tells me "expression or string literal expected", what am i doing wrong?</p>
<p>Thanks!</p>
<hr/>**评论:**<br/><br/>klauspost: <pre><p>You can either do this:</p>
<pre><code>var foo [16]byte = [...]byte { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
</code></pre>
<p>or this (nicer)</p>
<pre><code>var foo = [...]byte { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
</code></pre></pre>8lall0: <pre><p>Thanks!</p></pre>nevyn: <pre><p>Note that the second version doesn't tell the programmer (reader) what the size of the array is. In this case you can solve that by having 4 groups of 4 values, but in general it can be better to add the extra "[16]byte" even if you think it looks uglier.</p></pre>nevyn: <pre><p>Note that <a href="https://tour.golang.org/basics/12" rel="nofollow">zero values</a> are special in golang, so both:</p>
<pre><code>var foo1 [16]byte = [16]byte{0}
var foo2 [16]byte
</code></pre>
<p>...will also work.</p></pre>kl0nos: <pre><p>FooArr := []byte{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }</p></pre>
