我正在阅读振动的例子,下一刻无法理解:
import vibe.d;
shared static this()
{
auto settings = new HTTPServerSettings;
settings.port = 8080;
listenHTTP(settings, &handleRequest);
}
void handleRequest(HTTPServerRequest req,
HTTPServerResponse res)
{
if (req.path == "/")
res.writeBody("Hello, World!", "text/plain");
}
为什么我们将listenHTTP
指针传递给&handleRequest
。我的意思是为什么我们不能简单地为每个请求调用它?
那么HTTPServerRequest req
和HTTPServerResponse res
呢?他们是在handleRequest
来电或何时开始创作的?
答案 0 :(得分:3)
指针是库如何知道您希望它在每次请求时调用的函数。
您将指针传递给函数,然后vibe在该点创建req和res,并在每次获得新请求时调用指向的函数。
如果你试图在没有指针的情况下传递handleRequest,它会在请求实际准备好之前尝试在设置时调用它。