code: func (args Arguments) String(indexOrNil ...int) string {
  
  	if len(indexOrNil) == 0 {
  		// normal String() method - return a string representation of the args
  		var argsStr []string
  		for _, arg := range args {
  			argsStr = append(argsStr, fmt.Sprintf("%s", reflect.TypeOf(arg)))
  		}
  		return strings.Join(argsStr, ",")
  	} else if len(indexOrNil) == 1 {
  		// Index has been specified - get the argument at that index
  		var index = indexOrNil[0]
  		var s string
  		var ok bool
  		if s, ok = args.Get(index).(string); !ok {
  			panic(fmt.Sprintf("assert: arguments: String(%d) failed because object wasn't correct type: %s", index, args.Get(index)))
  		}
  		return s
  	}
  
  	panic(fmt.Sprintf("assert: arguments: Wrong number of arguments passed to String.  Must be 0 or 1, not %d", len(indexOrNil)))
  
  }
docs: // String gets the argument at the specified index. Panics if there is no argument, or
  // if the argument is of the wrong type.
  //
  // If no index is provided, String() returns a complete string representation
  // of the arguments.