func SliceValue(i any) any {
	if reflect.TypeOf(i).Kind() == reflect.Slice {
		sliceVal := reflect.ValueOf(i)
		if sliceVal.Len() > 0 {
			return sliceVal.Index(0).Interface()
		}
	}
 
	return nil
}

Go reflectパッケージを使って関数名を取得する と組み合わせると、こういうこともできる

func FunctionName(i any) string {
	if reflect.TypeOf(i).Kind() == reflect.Func {
		return runtime.FuncForPC(reflect.ValueOf(i).Pointer()).Name()
	} else if reflect.TypeOf(i).Kind() == reflect.Slice {
		sliceVal := reflect.ValueOf(i)
		if sliceVal.Len() > 0 {
			firstElem := sliceVal.Index(0)
			return runtime.FuncForPC(firstElem.Pointer()).Name()
		}
	}
 
	return ""
}