Дойчин обнови решението на 17.10.2014 21:01 (преди над 3 години)
▸ Покажи разликите-
Reduce
-а ти не работи вслучай наlen(data) > 0
:) - прочети условието. -
добре де ако
Filter
му бъде подадено нещо в стилlen(data) == 1000
иfunc(string) bool { return false; }
не смяташ ли че ще върнеш един слайс с един много голям масив отдолу за който не е сигурно че някога ще го използваш?
Бооже, май съм зле :D
- Reduce: Но все още не мога да разбера къде греша. А не си спомням твоите тестове и не искам да го гледам преди да се сетя сам. Даже си написах тест специално за това преди да го предада:
func TestReduceEdges(t *testing.T) {
input := []string{}
output := ""
result := Reduce(input, concat)
if result != output {
t.Errorf("expected [%s] got [%s]", output, result)
}
input = []string{"one"}
output = "one"
result = Reduce(input, concat)
if result != output {
t.Errorf("expected [%s] got [%s]", output, result)
}
}
- Filter: Смятам, но не ме интересуваше особено. Сега след като го каза ме човърка да го оправя.
О, боже :D
func TestReduceWithSomethingDifferentThanConcat(t *testing.T) {
input := []string{"one", "two", "tree"}
output := "one"
result := Reduce(input, func(a string, b string) string {
if len(a) > 0 {
return a
}
return "bla?"
})
if result != output {
t.Errorf("expected [%s] got [%s]", output, result)
}
}
Не знам защо си представях, че единственото, което може да прави Reduce е да конкатенира хаха.