2017-06-23 5 views
6

vs ben KOTLIN için oldukça yeni ve ben temsilleri bu rastlamak ettik Kullanılmalı mı? The docs bu konuda çok açık görünmüyor.Kotlin Oluşturucu Oluşturucu

+2

Muhtemelen bir "tarz sadece" sorusu için daha fazla fikir istemek; ama belki de Kotlin guruları gerçeklere dayalı bir cevap verebilir. – GhostCat

cevap

7

İkinci parçacık, etki alanınız için bir DSL nasıl oluşturabileceğinize bir örnektir. Böyle basit durumlar için bir DSL oluşturmak biraz daha fazladır, ancak nesneleriniz büyüdüğünde DSL tasarımı için daha temiz olabilir.
Aslında, basit örnek oluşturmak için DSL stilini kullanmak kafa karıştırıcı bile olabilir.

Örneğin, the documentation on DSLs aşağıdaki kodu gösterir:

fun result(args: Array<String>) = 
    html { 
     head { 
      title {+"XML encoding with Kotlin"} 
     } 
     body { 
      h1 {+"XML encoding with Kotlin"} 
      p {+"this format can be used as an alternative markup to XML"} 

      // an element with attributes and text content 
      a(href = "http://kotlinlang.org") {+"Kotlin"} 

      // mixed content 
      p { 
       +"This is some" 
       b {+"mixed"} 
       +"text. For more see the" 
       a(href = "http://kotlinlang.org") {+"Kotlin"} 
       +"project" 
      } 
      p {+"some text"} 

      // content generated by 
      p { 
       for (arg in args) 
        +arg 
      } 
     } 
    } 

Bu DSL kullanabilirsiniz zaman mükemmel bir örnektir: sözdizimi size modeller oluşturmak nasıl temiz bir yapıya olanak verir. Başka biri için Anko, UI'leri tanımlayan bir DSL sağlar.