You are an expert in writing code in many different languages. Your goal is to perform code completion for the following code, keeping in mind the rest of the code and the file meta data.
    Metadata details:
    filename: transform.go
    path of file: ./repos/teller/vendor/github.com/AlecAivazis/survey/v2
    
    the code of the file until where you have to start completion: package survey

import (
	"reflect"
	"strings"
)

// TransformString returns a `Transformer` based on the "f"
// function which accepts a string representation of the answer
// and returns a new one, transformed, answ
    
func TransformString(f func(s string) string) Transformer {
	return func(ans interface{}) interface{} {
		// if the answer value passed in is the zero value of the appropriate type
		if isZero(reflect.ValueOf(ans)) {
			// skip this `Transformer` by returning a zero value of string.
			// The original answer will be not affected,
			// see survey.go#L125.
			// A zero value of string should be returned to be handled by
			// next Transformer in a composed Tranformer,
			// see tranform.go#L75
			return ""
		}

		// "ans" is never nil here, so we don't have to check that
		// see survey.go#L338 for more.
		// Make sure that the the answer's value was a typeof string.
		s, ok := ans.(string)
		if !ok {
			return ""
		}

		return f(s)
	}
}