• Как узнать есть ли у переменной структуры метод?

    // Вводим интерфейс с методом Close
    // Можем даже использовать готовый io.Closer
    type Closer interface {
        Close()
    }
    
    // Проверяем, удовлетворяет ли Handler интерфейсу
    if casted,ok := m.Handler.(Closer); ok {
        // Если удовлетворяет, вызываем метод
        casted.Close()
    }
    Ответ написан
  • Ошибка "SyntaxError: multiple statements found while compiling a single statement", в чем проблема?

    trapwalker
    @trapwalker Куратор тега Python
    Программист, энтузиаст
    number == 79
    Вы сравниваете несуществующую переменную с константой 79. Используйте присвоение: "="
    И заодно расскажите, как это у вас работает в голове? Буквально следующей строчкой есть присвоение, написанное верно. Вам оказалось проще прийти на этот сайт и задать дурацкий вопрос, вместо того, чтобы секунду подумать и внимательно посмотреть код в том месте, куда вам заботливо указал интерпретатор. Как это так? Вы серьёзно?!
    Ответ написан
    7 комментариев
  • Golang подходит ли для создания сайтов?

    @MadridianFox
    Web-программист, многостаночник
    1) Go компилируемый, само собой скорость выше, но если вы на маленьком сайте упираетесь в скорость исполнения кода, то проблема скорее в коде, и выбор более быстрого языка избавит вас только от симптома, но не от болезни
    2) на seo влияет только то ЧТО вы отдаёте пауку. Не важно на каком языке пишется программа, которая отдаёт html
    3) Программа написанная на go сама работает как сервер. Более того, это не какой-то сервер приложений, как например tomcat, нет, вы сами будете писать цикл обработки входящих соединений - т.е. вам необходимо этот самый серер реализовать. В отличие от php+apache, где в качестве сервера выступает apache, который при необходимости вызывает php. Ставить ли apache или nginx перед go сервером вы решаете сами.
    4) Поддерживает. На скорость работы СУБД не влияет то, на каком языке написана программа, которая к ней обращается.
    5) Фреймворков уровня Yii2 или Symfony не наблюдается. Ситуация такая же как и с NodeJS - что-то есть, но комбайнов нет.
    6) Если что-то может слушать соккет - на этом можно написать сайт. Любой. Другое дело, что сайты визитки на Go не пишут (только ради забавы), а крупные сайты вообще имеют сложную архитектуру, такую что язык уже не имеет значения.
    7) Для php разработчика - да. Как минимум вы меняете скриптовый язык на компилируемый. Это значит что любое изменение кода требует компиляции, остановки работающего сервера, загрузки бинарника на его место и запуск. Кроме того вы меняете Stateless модель работы кода на полноценно работающую программу. Если на php у вас скрипт запускался заново при каждом http запросе, то программа на go запускается один раз и после этого принимает множество запросов.
    Ответ написан
    10 комментариев
  • Golang не запускает main()?

    bitniks
    @bitniks
    Go/PHP/Symfony developer
    go run компилирует и запускает программу https://golang.org/cmd/go/#hdr-Compile_and_run_Go_...
    go build только компилирует https://golang.org/cmd/go/#hdr-Compile_and_run_Go_... Затем скомпилированную программу можно запустить как обычный исполняемый файл

    Когда вы запускаете go run main.go или go build main.go, вы получаете то, что вам нужно. В первом случае будет компиляция и запуск, во втором только компиляция
    Ответ написан
    1 комментарий