code: func (enc *Encoder) encodeArray(v reflect.Value, ignoreOpaque bool) (int, error) {
  	numItems := uint32(v.Len())
  	n, err := enc.EncodeUint(numItems)
  	if err != nil {
  		return n, err
  	}
  
  	n2, err := enc.encodeFixedArray(v, ignoreOpaque)
  	n += n2
  	return n, err
  }
docs: // encodeArray writes an XDR encoded integer representing the number of
  // elements in the passed slice represented by the reflection value followed by
  // the XDR encoded representation of each element in slice to the encapsulated
  // writer and returns the number of bytes written.  The ignoreOpaque flag
  // controls whether or not uint8 (byte) elements should be encoded individually
  // or as a variable sequence of opaque data.
  //
  // A MarshalError is returned if any issues are encountered while encoding
  // the array elements.
  //
  // Reference:
  // 	RFC Section 4.13 - Variable-Length Array
  // 	Unsigned integer length followed by individually XDR encoded array elements