问题标签 [kotlin-dsl]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
android - 使用 Kotlin DSL 构建 Android - 如何访问风味额外属性?
传统上,在 Groovy 中,可以在ext
{}
块中定义特定于风味的变量,但切换到 Kotlin DSL 似乎extra
地图具有项目范围。
看起来可以通过使用以下方法强制为附加功能设置风味范围:
(来源:https ://github.com/gradle/kotlin-dsl-samples/issues/1254 )
但是如果以后需要使用它,例如基于buildType
这样的调整变量:
这些风味范围的引用将extra
如何使用?
kotlin - 如何编写以下 Kotlin 合约?
问题很简单:(使用 Kotlin 1.3.71)
我有以下类似的数据:
我想通过这样的调用来实现类型安全:
为此,我建立了:
为了避免使用!!
操作员,我想编写一个合同,帮助编译器推断出一个智能广播,该智能广播说属性lat
和lng
不为空,但我无法成功地做到这一点。
我尝试过没有成功的事情,我相信这可能是因为我没有完全理解合同的动态。这些是风格:
所以问题是:
这可以用当前的 Kotlin 版本完成吗?如果是这样,怎么做?
kotlin - 带有可选字段的 Kotlin DSL
我目前正在学习 Kotlin DSL。
我已经玩了一段时间了,但我无法解决我的用例。我有一个简单的 DSL,只要我能实现这样的语法,我就不会太在意它的类型:
在后台,我现在想区分ITEM
块中设置的某些值。B
很容易,它只是价值,但它变得很难A
和C
。不知何故,我无法区分null
和no value
设置。目前我的构建器看起来像这样,但我愿意更改它以实现上述语法:
当我有了最终对象时,我希望能够为 ITEM 下的每个字段区分 4 个不同的阶段:
- 值集
- 空集
- 未设置值
- 字段省略
我尝试了不同的类型,但没有运气,因为大多数事情都会影响语法。我还尝试更改构建器中的 getter/setter,以便在那里捕获更新并具有更新的附加内部属性 - 但既没有也没有get
调用set
null/no 值。还尝试将字段更改为函数,但后来我()
在 DSL 语法中有丑陋的括号。
如果有人可以帮助我解决这个问题,那就太好了。
提前致谢!
kotlin - 在 Kotlin 中声明一个不是表达式的函数
当有人试图将函数用作不打算那样使用的表达式时,我如何强制编译时错误?
我的用例是生成一个 DSL,其中 DSL 构建器和其他构建器中的子 DSL 之间可能存在名称冲突,具体取决于执行范围 - 例如:
如果我可以做类似RequestDSL.attribute(...) : void
的事情,甚至不允许用户attribute(...)
在 DSL 中作为表达式调用。这样可以避免这个问题。
这可以以某种方式完成吗?
我试过Nothing
了,但它只是使函数调用后所有代码都无法访问。
我也尝试过Void
,但它只是迫使我使返回可为空并返回 null 而不是在调用端给出错误。
kotlin - gradle kotlin DSL 扩展自
我该如何重新制定:
从 Gradle Groovy DSL 到基于 Kotlin 的等价物?
我上面的方法失败了。
kotlin - 有没有办法使用数据生成 kotlin dsl
我们使用 kotlin dsl 作为用户友好的构建器来获取输入和生成数据。有没有办法做相反的事情?即,将现有数据转换为 dsl ?
这个 kotlin 表示可以转换为 dsl 吗?
android - 如何在 Kotlin DSL 中动态更改应用程序 ID
这是我的代码片段
但是将其更改为 defaultConfig 不会更改 applicationId。
spring - 将请求方法与 Kotlin DSL 匹配以实现 Spring Security
Spring Security 提供了 Kotlin DSL 以便于配置。这是Spring 博客中的一个示例:
我只想允许对特定路径的 POST 请求。在 Java 中,您可以执行以下操作:
使用 Kotlin DSL 的任何示例?
maven - 如何从非 build-gradle 文件访问 Kotlin DSL 扩展?
org.gradle.kotlin.dsl
与like
android
或etc一起出现的 Kotlin 扩展很少publishing
。比如说,对于publishing
,扩展定义如下
这意味着在我的范围内我build.gradle.kts
可以打电话
就我而言,我有一个单独的文件来处理定义为random.gradle.kts
并位于完全随机目录中的发布。
在这里,我想访问此publishing
扩展程序但无法访问。
欢迎任何建议。
再举一个例子android
也是不可取的。在我的build.gradle.kts
我可以访问android
,但在我的random.gradle.kts
我无法做到。
android
扩展定义如下
事实上,LibraryExtension 也是不可访问的。
那么,如何将这些扩展传递或导入到我的random.gradle.kts
?
kotlin - Kotlin DSL 自动添加/生成到 MutableList
我一直在努力让 DSL 像这样工作。我想将 lambda 中的项目添加到人员内部的 mutableList 中。有人可以帮忙吗?
执行 lambda 后的预期结果,所有这些项目将被放入 mutableList 中,如下所示: