Контакты

Достижения

Все достижения (6)

Наибольший вклад в теги

Все теги (86)

Лучшие ответы пользователя

Все ответы (162)
  • Как в текстовом редакторе vim выделять текст?

    @SilentFl
    1) выделение блока текста происходит в режиме выделения, нажав либо v (посимвольное выделение), либо V (построчное), либо Ctrl+v (блочное, выделяется прямоугольный блок)
    2) копирование - либо y (просто скопировать в vimовский буфер), либо "*y (скопировать в системный буфер обмена), либо "+y (тоже скопировать в системный буфер)
    3) вырезать - d. Причем можно вырезать без предварительного выделения, например dd удалит текущую строку, diw - текущее слово.
    4) вставить - p, либо P
    Я рекомендую почитать по vim'у книжку
    Ответ написан
    Комментировать
  • Чем отличаются буферизированные каналы от небуферизированных?

    @SilentFl
    рассматривайте каналы как очереди queue. небуферизованный - с длиной 1, буферизованный - с длиной n (ch := make(chan struct{}, n). запись в канал может быть осуществлена если в канале есть еще места, при заполнении канала запись лочится (т.е. код "встает" на этой попытке и ждет пока освободится место). в соответствии с этим:
    ch1 := make(chan struct{})
    ch1 <- struct{}{} //ок, ушло в канал
    ch1 <- struct{}{} //висим и ждем когда кто-нить прочитает из канала


    ch2 := make(chan struct{},3)
    ch2 <- struct{}{} //ок, ушло в канал
    ch2 <- struct{}{} //также ушло
    ch2 <- struct{}{} //и еще ушло
    ch2 <- struct{}{} //а вот тут лок. висим и ждем когда кто-то прочитает из канала
    Ответ написан
    Комментировать
  • Какой язык программирования изучить в целях саморазвития?

    @SilentFl
    Я рекомендую Go - статический, и ООП, и CSP. А для саморазвития лучше выходить из своей зоны комфорта и брать "совсем не ООП" - Forth, Haskell, Erlang, Prolog, Perl, Ruby.
    1) Forth - стековый язык, начинаешь изворачиваться с ограничениями, прокачка оптимизаций
    2) Haskell/Prolog - функциональные языки, "все совсем не так", начинаешь программировать рассматривая программу комплексно, как единое целое
    3) Erlang - даже если про него просто почитать, то понимаешь что такое настоящий инженерный подход к разработке _больших_ программных комплексов, а после осознания мощи акторов - смеешься над threads других языков
    4) Perl/Ruby ну и Python сюда же - очень рекомендую посмотреть на их методы работы с коллекциями, они позволяют компактно, в пару строчек, выразить то, что для того же С/С++ заняло бы пару-тройку десятков строк
    5) ну и Assembler, конечно же, после него начинаешь понимать архитектуру компа и других программ, и методы повышения производительности своего кода
    Как-то так, имхо.
    Ответ написан
    Комментировать
  • Как правильно заполнять карты в go?

    @SilentFl
    В го есть ООП, пользуйтесь им. Выделите отдельно свой Item, Group и прочее хотя бы так
    Ответ написан
    Комментировать