Мы тут, тащемта, веб`ом занимаемся и нас hello world в консольке не впечатляет. Даешь в браузер?
--
ДАЮ!
GoLang из коробки имеет целый набор пакетов для написание веб-приложений.
Тут есть всё для разбора запроса, маршрутизации и формирования ответа.
Даже готовый веб-сервер, и тот есть
И так, снова откроем hello.go и перепишем код так, что бы наш hello world работал как веб-сервер.
package main
import "fmt"
import "net/http"
func Handler(w http.ResponseWriter, r *http.Request) {
fmt.Fprintf(w, "Hello, world!")
}
func main() {
http.HandleFunc("/", Handler)
http.ListenAndServe(":9000", nil)
Запускаем из командной строки, заходим через браузер по адрессу
http://127.0.0.1:9000/ и любуемся результатом
L!MP, опять те предложу гостевую на обзор, самое то чтоб было понять некоторые вещи
код суров конечно для новичка..
Koenig, боюсь там мало что будет понятно. С "наскока" будет тяжело разобраться.
Gaucer, ну так интересуйтесь, я по пробую обьяснить
а на хостинге как заставить работать это чудо ?
насчет fast незнаю а последние 3 буквы есть
Можно написать веб-сервер с преферансом и поэтессами (вирт.хосты, отдача статики, SSL) на Go.
А можно взять Nginx и проксировать запросы через него.
func main() {
fmt.Println("Hello, world!")
}
/…/
Все обязательно через функции?
Или func не объявление функции?
Или func не объявление функции?
func это обьявление функции.
Все обязательно через функции?
Нет, можно писать код и вне функции, тут дело вот в чем.
Когда запускается программа, Go ищет в исполняемом файле функцию main и запускает её (как, к примеру, Java запускает метод main класса).
В Go существует две таких функции: init() и main().
Код в этих функциях будет исполнен единожды, при запуске программы.
--
Для наглядности, переделаем наш последний код:
package main
import "fmt"
import "net/http"
func Handler(w http.ResponseWriter, r *http.Request) {
fmt.Fprintf(w, "Hello, world!")
fmt.Println("Запрос обработан.")
}
func main() {
fmt.Println("Сервер запущен.")
http.HandleFunc("/", Handler)
http.ListenAndServe(":9000", nil)
}
Запустим из командной строки и сразу получим ответ:
Сервер запущен.
Затем сделаем запрос через браузер (
http://127.0.0.1:9000) и наблюдаем за консолью.
При каждом обращении, в консоле будет появляться новая фраза
Запрос обработан., но
Сервер запущен повторяться более не будет.