Je suis en train de l'interface avec TeamCity à l'aide Kotlin-DSLPouvez-vous concaténer des instructions à l'exécution dans Kotlin?
In this section du guide TC Kotlin il y a une partie à la recherche un peu bizarre où il semble que cela fait des déclarations à devenir concaténés à la volée.
Il a d'abord définit ces:
val linux = Requirements() {
contains("os.name", "linux")
}
val oracle = Requirements() {
equals("db.name", "oracle")
}
val java6 = Requirements() {
contains("env.JAVA_HOME", "1.6")
}
Alors est-ce avec ces définitions:
buildType {
...
requirements(linux + oracle + java6)
...
}
Je sais que la section ci-dessus code est équivalent à
buildType {
...
requirements {
contains("os.name", "linux")
equals("db.name", "oracle")
contains("env.JAVA_HOME", "1.6")
}
...
}
Je supposons que ma question se résume à quel est le type de retour de la fonction 'Requirements' qui peut être juste c oncaténaté ensemble? Je suppose qu'il est une sorte d'enveloppe de déclaration/fonction et Kotlin vous permet de concaténer ces que vous allez, et la signature de la fonction ressemble à ceci:
fun Requirements(init: (a: String, b: String) -> UnknownTypeA) : UnknownTypeB
EDIT: Pour quelqu'un qui est confus En lisant ceci dans le futur, les appels aux exigences sont en fait une initialisation d'objet via le constructeur Requirements. Je me sens inévitablement gêné de ne pas en avoir pris connaissance (le boîtier du nom aurait dû être assez clair!) Mais je fais cette édition pour montrer aux gens que ce n'est pas une fonction. Merci à Hotkey pour le signaler.