interface, append, slice PODOLSKY

This commit is contained in:
dreddsa5dies
2022-02-10 09:43:42 +03:00
parent 6206fc9c62
commit b68e4a837a
2 changed files with 41 additions and 4 deletions

View File

@@ -82,9 +82,9 @@
9. [Вопросы от Данила Подольского на позицию Senior Golang Backend Developer в компанию Evrone](docs/PODOLSKY.md)
- [Go императивный или декларативный? А в чем разница?](docs/PODOLSKY.md#1)
- [Что такое type switch?](docs/PODOLSKY.md#2)
- Как сообщить компилятору, что наш тип реализует интерфейс?
- Как работает append?
- Какое у slice zero value? Какие операции над ним возможны?
- [Как сообщить компилятору, что наш тип реализует интерфейс?](docs/PODOLSKY.md#3)
- [Как работает append?](docs/PODOLSKY.md#4)
- [Какое у slice zero value? Какие операции над ним возможны?](docs/PODOLSKY.md#5)
- Как устроен тип map?
- Каков порядок перебора map?
- Что будет, если читать из закрытого канала?

View File

@@ -10,3 +10,40 @@
### <a name="2"></a> Что такое type switch?
Сравнение типов переменной, а не ее значений.
### <a name="3"></a> Как сообщить компилятору, что наш тип реализует интерфейс?
Если наш тип реализует все методы интерфейса, значит он реализует этот интерфейс.
### <a name="4"></a> Как работает append?
Если capacity исходного массива достаточно, он используется повторно. В противном случае выделяется новый базовый массив достаточной длины и данные копируются
### <a name="5"></a> Какое у slice zero value? Какие операции над ним возможны?
Zero value у slice == nil
Возможные операции: len, cap, append.
### <a name="6"></a> Как устроен тип map?
### <a name="7"></a> Каков порядок перебора map?
### <a name="8"></a> Что будет, если читать из закрытого канала?
### <a name="9"></a> Что будет, если писать в закрытый канал?
### <a name="10"></a> Как вы отсортируете массив структур по алфавиту по полю Name?
### <a name="11"></a> Что такое сериализация? Зачем она нужна?
### <a name="12"></a> Сколько времени в минутах займет у вас написание процедуры обращения односвязного списка?
### <a name="13"></a> Где следует поместить описание интерфейса: в пакете с реализацией или в пакете, где этот интерфейс используется? Почему?
### <a name="14"></a> Предположим, ваша функция должна возвращать детализированные Recoverable и Fatal ошибки. Как это реализовано в пакете net? Как это надо делать в современном Go?
### <a name="15"></a> Главный недостаток стандартного логгера?
### <a name="16"></a> Есть ли для Go хороший orm? Ответ обоснуйте.
### <a name="17"></a> Какой у вас любимый линтер?
### <a name="18"></a> Можно ли использовать один и тот же буфер []byte в нескольких горутинах?
### <a name="19"></a> Какие типы мьютексов предоставляет stdlib?
### <a name="20"></a> Что такое lock-free структуры данных, и есть ли в Go такие?
### <a name="21"></a> Способы поиска проблем производительности на проде?
### <a name="22"></a> Стандартный набор метрик prometheus в Go -программе?
### <a name="23"></a> Как встроить стандартный профайлер в свое приложение?
### <a name="24"></a> Overhead от стандартного профайлера?
### <a name="25"></a> Почему встраивание не наследование?
### <a name="26"></a> Какие средства обобщенного программирования есть в Go?
### <a name="27"></a> Какие технологические преимущества языка Go вы можете назвать?
### <a name="28"></a> Какие технологические недостатки языка Go вы можете назвать?