Публикувана е първата задача за домашно. Ще ви е много полезно предварително да прочетете този гайд. Условието, както и малък тест, могат да бъдат намерени и в github хранилището ни.
Тук можете да ни питате ако има нещо неясно по условието.
Публикувана е първата задача за домашно. Ще ви е много полезно предварително да прочетете този гайд. Условието, както и малък тест, могат да бъдат намерени и в github хранилището ни.
Тук можете да ни питате ако има нещо неясно по условието.
Привет, ако входът завършва с повече от един нов ред какво трябва да върнем?
Увеличихме срока за предаване на задачата с една седмица до 3ти ноември, защото в решението ѝ може да ви се наложи да използвате неща, за които ще говорим на следващата лекция.
@Даниел, по принцип няма да има такъв пример в нашите тестове. Но се чувствай свободен да го третираш по същия начин, всякаш е имало само един нов ред.
Между другото само да отбележа, че някой е намазал условието на миналогодишната първа задача, като то е заменено с условието на сегашната. Явно проблем с някакви версии на fork-а, deploy-а на сайта за тази и миналата година ?!?
И по предаването на задачата не беше казано, но предполагам, че не трябва да имаме наш main метод, а ще се ползва вашият. Това означаваше да си оправим и импортите, като махнем тези, които ползваме в нашият main метод (например "fmt", за да си тестваме кода). Предполагам горното е очевидно, но за по-глупавичките като мен го пиша.
@Йончо, прав си, че не трябва да има main
функция в решението ви. Но същевременно трябва да е в пакета main
, както пише в гайда. Ако искате да тествате кода си може да използвате примерния тест или да си напишете main
функция в съседен файл, възползвайки се от пакетите в Go.
Да, наистина задачите в миналогодишното издание на курса са странни. Ще разследваме проблема :)
За формата
<време във формат YYYY-MM-DD hh:mm:ss> <IPv4 адрес> <свободен текст>
има ли значение броя спейсове между отделните части, дали има интервал преди и след. Какво би трябвало да върнем при празен ред или ред от файла, който не отговаря на зададения формат?
Следващата лекция на каква тема ще е ?
Между дата-час полето и IP адреса ще има точно един интервал. След IP адреса със сигурност ще има един интервал. След това има свободен текст, който може да има интервали, може и да няма, навсякъде из себе си. Целта на задачата не е да ви даваме странни входни данни.
Следващата лекция ще е за структури от данни.
Здравейте :)
Ако logContents е празен стринг, какво се очаква да върне функцията - '' или '\n'?
Ако се подаде '\n','\n' ли се връща?
Мисля, че горе е отговорено на въпросите. Аз питах същите въпроси като теб, ако се зачетеш и ми бе отговорено :
Целта на задачата не е да ви даваме странни входни данни
По-интересното е, двата коментара, че трябва да използваме материал от следващата лекция за да я решим, и че той ще е за структура от данни.
@Таня, ако се зачетеш в последната точка от разяснението ще видиш
Върнатият от вас стринг трябва да завършва с един нов ред ако в него има поне един ред, независимо от това дали лога във входния аргумент го прави или не.
Целта ѝ е да разясни точно тези ситуаци, но явно не е много успешно. Ще се опитам тук с повечко думи.
Kogato logContents
е празен стринг, то в отговора ти няма да има нито един ред. В този случай не трябва да добавяш нищо, връщаш празен стринг.
Когато входа е един нов ред ("\n"
), то отново във върнатия резултат няма да имаш нито един ред. Което, отново, значи, че резултата е празен стринг.
Ок, благодаря. Това ок ли е като тестове?
Ето малко тестове и от мен.
8.8.8.8 8.8.4.4 208.122.23.23 tova li sa ne6tata koito trqbva da testvame dokato pi6em koda
@Валентин Прочети хубаво условието на задачата, програмата трябва да връща съответната колонка от въведения стринг(сиреч лог файла) . 0 е за датата и часа, 1 е за ip-тата , 2 за остатъка от реда. Всичко това се тества :)
@Таня, в тестовете ти на 108 ред не трябва ли да се махне таба? Защото в момента подаваш празен ред + втори с таб != "\n".
@Юлия, трябва да се махне, да. Благодаря ^_^
Здрасти :-)
Проблем ли е, ако в решението си съм използвал езиковата конструкция continue в тялото на for цикъл?
@Радослав,
Не, не е проблем. Важното е да работи.
Не мога да изпратя кода, защото ми казва, че имам някаква синтактична грешка.А мога ли да изпратя кода въпреки нея по някакъв начин?
Пусна ли си файлчето през go fmt?
go fmt <име-на-файлчето>
Катоо си в директорията, в която е и въпросното файлче.
не съм го пуснал,защото не знам как да го пусна и не знам как да намеря това go fmt
@Валентин
П.С. Няма да е зле да използваш Гугъл :)
@Таня под Ubuntu е лесно, питаш ли го как е под Windows. Примерно за да смениш на диск D са си супер големи хватки. Например хитринката d: ти сменя диска (или cd \d) ( после cd D:\some\folder ), но ако не го знаеш се прави с : pushd D:\some\folder . А за самата конзола е отварящ полето за търсене в старт менюто и cmd (power shell не съм работил, но го препоръчват). Въобще под windows е тъмна и кървава. Така де, трябваше да науча тези нови команди за да си го пусна теста под windows.
@Валентине няма проблем да задаваш въпроси, но поне си прочети как се изпраща домашното преди това. Четенето на документация спестява много проблеми, това от личен опит.
Някой, че потвърди ли, че тестовете от файла на Таня: TestLogDoesNotEndInNewLine, TestLogStartsWithNewLine, TestOneLineLog са релевантни ? Питам, защото според условието няма да се подават данни извън шаблона, а тук трябва да променим аргумента logContents, за да работи алгоритъма - да му добавим нещо отзад за да минат тестовете, което не ме кефи.
"Върнатият от вас стринг трябва да завършва с един нов ред ако в него има поне един ред, независимо от това дали лога във входния аргумент го прави или не."
hint: виж последния коментар от Дойчин
тестовете на Таня са си окей (според мен)
Бих се радвал на кратък стегнат коментар по решенията (5 мин) по време на днешната лекция. Кое е типичният стил на писане на golang и кое не е.
В хранилището за домашни качихме тестовете, с които проверихме решенията ви. Там ще намерите и решение, което смятаме за прилично.
Трябва да сте влезли в системата, за да може да отговаряте на теми.