func (l *List) String() string {
	l.key.RLock()
	defer l.key.RUnlock()

	builder := bytes.NewBufferString("[")

	for i, entry := range l.underlyer {
		if i >= 15 {
			builder.WriteString("... ")
			break
		}
		builder.WriteString(fmt.Sprintf("%v ", entry))
	}
	builder.Truncate(builder.Len() - 1)
	builder.WriteRune(']')
	return builder.String()
}
func (l *List) String() string {
	l.key.RLock()
	defer l.key.RUnlock()

	builder := bytes.NewBufferString("[")

	for i, entry := range l.underlyer {
		if i >= 15 {
			builder.WriteString("... ")
			break
		}
		builder.WriteString(fmt.Sprintf("%v ", entry))
	}
	builder.Truncate(builder.Len() - 1)
	builder.WriteRune(']')
	return builder.String()
}
func ( l * List ) String ( ) string { l . key . RLock ( ) defer l . key . RUnlock ( ) builder := bytes . NewBufferString ( " " ) for i , entry := range l . underlyer { if i >= 15 { builder . WriteString ( " " ) break } builder . WriteString ( fmt . Sprintf ( " " , entry ) ) } builder . Truncate ( builder . Len ( ) - 1 ) builder . WriteRune ( ']' ) return builder . String ( ) }
// String generates a textual representation of the List for the sake of debugging.
String generates a textual representation of the List for the sake of debugging .