Application.kt中Ktor的Kotlin语法解释



我是来自Python世界的Kotlin的新手,想通过Ktor与Kotlin一起进入Web开发。

现在我已经开始了教程https://ktor.io/docs/creating-interactive-website.html#running-我们的申请是第一次,我已经不明白很多事情了。

查看Application.kt的代码,它是

package com.jetbrains.handson.website
import freemarker.cache.*
import freemarker.core.HTMLOutputFormat
import io.ktor.application.*
import io.ktor.freemarker.*
import io.ktor.html.respondHtml
import io.ktor.http.HttpStatusCode
import io.ktor.http.content.*
import io.ktor.request.receiveParameters
import io.ktor.response.*
import io.ktor.routing.*
import kotlinx.html.*

fun main(args: Array<String>): Unit = io.ktor.server.netty.EngineMain.main(args)
fun Application.module() {
routing {
static("/static") {
resources("files")
}
}
}

我不明白语法是什么意思。我假设模块是Application?类的扩展函数?但是路由和静态是什么意思呢。有人能解释一下那里发生的概念吗,或者只是说出它们的名字,这样我就可以在谷歌上搜索它们了。

提前感谢:-(

编辑:为了澄清。当涉及到路由概念时,我知道在哪里寻找ktor之类的概念。我想问的是什么是路由。它是一个函数吗?但如果是这样的话,它需要什么参数,它看起来不像一个正常的函数定义,而是在另一个函数中声明的。当我查看这些类型时,它似乎采用了一个类型为Routing的lambda函数。((->单元路由是什么。((意思是。。。这就是我不明白的地方。

routingApplication的扩展函数,它安装Routing插件并使用提供的lambda进行配置。Route.() -> Unit是具有Route接收器的函数类型(this在此函数内具有类型Route(,其不具有参数并且返回Unit(无(。欲了解更多信息,请阅读Kotlin官方文档。因此,正是构建模式在起作用,它允许编写类似Ktor路由的DSL。

最新更新