Comments 11
поскольку сам Go является C-подобным
Точно Си? Я его когда первый раз увидел, сразу Оберон вспомнил.
За это время вы научитесь:
Писать простые SQL-запросы к базам данных.
А во входном тесте умение "простые SQL-запросы к базам данных" уже требуется кстати.
Учиться работать с БД в рамках языка программирования с того, чтобы учиться работать с БД в целом, ИМХО плохая затея. Ибо человек такое создание, что склонно терять лес за деревьями, а реляционная логика, понятие множеств и действий над ними, на которых она строится и общая логика работы СУБД даст достаточно деревьев, чтобы за ними напрочь, месяцев на 6 минимум, полностью потерять GO из виду =))))) Эту часть квеста лучше проходить заранее....
А в рамках топика, о ALL, а никто не порекомендует обновляемый, адекватный, online справочник по синтаксису и стандартной библиотеке Go на русском языке.
На русском... может http://golang-book.ru/
Репа книги https://github.com/maxpoletaev/golang-book это перевод, не обновляется, хотя есть пулл реквесты
(уже оставил в обратной связи) однако сделаю это и тут может создаст обсуждение.
Внимание спойлеры на тест курса.
Вопрос 1 - неоднозначность
RFC 7231 §4.3.1 states that a body "has no defined semantics", but that's not to say it is forbidden. If you attach a body to the request and what your server/app makes out of it is up to you.
Вопрос 2 - неоднозначность
Being valid ECMAScript doesn't necessarily mean a document is valid JSON - JSON is generally defined in RFC 4627, and that spec does not allow the trailing comma.
ECMAScript != RFC 4627. RFC (spec) does not allow the trailing comma.
example (python)
In [57]: import json
In [58]: json.loads('''{"a": 1, "b": "2", }''')
---------------------------------------------------------------------------
JSONDecodeError Traceback (most recent call last)
<ipython-input-58-7660b1a33870> in <module>
----> 1 json.loads('''{"a": 1, "b": "2", }''')
/usr/local/Cellar/python@3.9/3.9.13_1/Frameworks/Python.framework/Versions/3.9/lib/python3.9/json/__init__.py in loads(s, cls, object_hook, parse_float, parse_int, parse_constant, object_pairs_hook, **kw)
344 parse_int is None and parse_float is None and
345 parse_constant is None and object_pairs_hook is None and not kw):
--> 346 return _default_decoder.decode(s)
347 if cls is None:
348 cls = JSONDecoder
/usr/local/Cellar/python@3.9/3.9.13_1/Frameworks/Python.framework/Versions/3.9/lib/python3.9/json/decoder.py in decode(self, s, _w)
335
336 """
--> 337 obj, end = self.raw_decode(s, idx=_w(s, 0).end())
338 end = _w(s, end).end()
339 if end != len(s):
/usr/local/Cellar/python@3.9/3.9.13_1/Frameworks/Python.framework/Versions/3.9/lib/python3.9/json/decoder.py in raw_decode(self, s, idx)
351 """
352 try:
--> 353 obj, end = self.scan_once(s, idx)
354 except StopIteration as err:
355 raise JSONDecodeError("Expecting value", s, err.value) from None
JSONDecodeError: Expecting property name enclosed in double quotes: line 1 column 20 (char 19)
In [59]: json.loads('''{"a": 1, "b": "2"}''')
Out[59]: {'a': 1, 'b': '2'}
RFC 7231 §4.3.1 states that a body "has no defined semantics", but that's not to say it is forbidden. If you attach a body to the request and what your server/app makes out of it is up to you.
Кстати да, мне раз доводилось работать с API, в котором был GET запрос с body. Было забавно наблюдать, как одни пакеты могут с таким вариантом работать, а другие ломаются.
Там нет проверки решений, можно только готовый ответ посмотреть. Бесполезная фигня. На Степике курс лучше, хоть и с заморочками.
«Основы Go» — новый бесплатный курс от Яндекс Практикума