Решение на Нормализация на пътища от Стефан Кънев

Обратно към всички решения

Към профила на Стефан Кънев

Резултати

  • 10 точки от тестове
  • 2 бонус точки
  • 12 точки общо
  • 8 успешни тест(а)
  • 0 неуспешни тест(а)

Код

package main
import "path"
// "parsePath"? Really? What was that about giving good names to
// functions? If anything, it should be called "simplifyPath" or
// "absolutePath". You don't call it to do parsing, you call it
// to transform the path in a specific way and the name should
// capture that transformation. But hey - who needs good names.
func parsePath(complexPath string) string {
var simplePath = path.Join("/", complexPath) + "/"
if simplePath == "//" {
return "/"
} else {
return simplePath
}
}

Лог от изпълнението

PASS
ok  	_/tmp/d20131015-29033-oe2vo3	0.011s
PASS
ok  	_/tmp/d20131015-29033-oe2vo3	0.011s
PASS
ok  	_/tmp/d20131015-29033-oe2vo3	0.011s
PASS
ok  	_/tmp/d20131015-29033-oe2vo3	0.011s
PASS
ok  	_/tmp/d20131015-29033-oe2vo3	0.011s
PASS
ok  	_/tmp/d20131015-29033-oe2vo3	0.011s
PASS
ok  	_/tmp/d20131015-29033-oe2vo3	0.012s
PASS
ok  	_/tmp/d20131015-29033-oe2vo3	0.012s

История (1 версия и 1 коментар)

Стефан обнови решението на 15.10.2013 14:04 (преди над 4 години)

+package main
+
+import "path"
+
+// "parsePath"? Really? What was that about giving good names to
+// functions? If anything, it should be called "simplifyPath" or
+// "absolutePath". You don't call it to do parsing, you call it
+// to transform the path in a specific way and the name should
+// capture that transformation. But hey - who needs good names.
+
+func parsePath(complexPath string) string {
+ var simplePath = path.Join("/", complexPath) + "/"
+
+ if simplePath == "//" {
+ return "/"
+ } else {
+ return simplePath
+ }
+}

Явно не само аз се ровя в документацията. В един момент дори се зачудих дали да не предам леко модифицирано копие на path.Clean от стандартната библиотека, но се отказах. Все пак е дупка в правилата, която трябва да се оправи. Или всъщност щеше да е ок?

Щеше да е най - бързото решение :Д :Д