Differenza tra la stringa KCL Domain Language e la stringa YAML

Mar 02 2023
Che cos'è YAML YAML è un linguaggio di serializzazione dei dati che viene spesso utilizzato per scrivere file di configurazione. A seconda di chi chiedi, YAML sta per ancora un altro linguaggio di markup o YAML non è un linguaggio di markup (un acronimo ricorsivo), che sottolinea che YAML è per i dati, non per i documenti.

Che cos'è YML

YAML è un linguaggio di serializzazione dei dati che viene spesso utilizzato per scrivere file di configurazione. A seconda di chi chiedi, YAML sta per ancora un altro linguaggio di markup o YAML non è un linguaggio di markup (un acronimo ricorsivo), che sottolinea che YAML è per i dati, non per i documenti.

YAML è un linguaggio di programmazione popolare perché è leggibile e facile da capire. Può anche essere utilizzato in combinazione con altri linguaggi di programmazione.

Cos'è KCL

Kusion Configuration Language (KCL) è un record basato su vincoli open source e un linguaggio funzionale. KCL migliora la scrittura di un gran numero di configurazioni complesse attraverso la tecnologia e la pratica del linguaggio di programmazione maturo e si impegna a costruire una migliore modularità, scalabilità e stabilità attorno alla configurazione, scrittura logica più semplice, automazione veloce e buona estensionalità ecologica.

Puoi usare KCL per

  • Genera dati di configurazione statici di basso livello come JSON, YAML, ecc. o integrali con dati esistenti .
  • Riduci il boilerplate nei dati di configurazione con la modellazione dello schema .
  • Definisci schemi con vincoli di regole per i dati di configurazione e convalidali automaticamente.
  • Organizza, semplifica, unifica e gestisci configurazioni di grandi dimensioni senza effetti collaterali tramite schemi di automazione del gradiente .
  • Gestisci configurazioni di grandi dimensioni in modo scalabile con blocchi di configurazione isolati .
  • Utilizzato come linguaggio di programmazione di ingegneria della piattaforma per fornire applicazioni moderne con Kusion Stack .
  • Le stringhe YAML con virgolette doppie sono l'unico stile in grado di esprimere stringhe arbitrarie, utilizzando \caratteri di escape, ad esempio \"per evitare virgolette doppie ", \\per evitare barre rovesciate \e una singola barra rovesciata \può essere utilizzata come carattere di continuazione per stringhe con virgolette doppie.
  • Le stringhe YAML con virgolette singole differiscono dalle stringhe YAML con virgolette doppie in quanto \possono "essere utilizzate liberamente senza escape, ma vengono utilizzate due virgolette singole ''per l'escape dei caratteri con virgolette singole '.

string1: 'here '' s to "quotes"'
string2: "here's to \"quotes\""
string3: here's to "quotes"

Per ulteriori dettagli, fare riferimento a YAML Spec v1.2

Qual è il significato di simboli come | — + > in YAML ?

Quando si utilizzano stringhe multilinea KCL (stringhe con virgolette triple), lo YAML di output contiene spesso alcuni token speciali, come |, -, +e >, ecc. Questi token di solito sono il metodo di rappresentazione della stringa multilinea YAML, come il seguente codice KCL :

data = """This is a KCL multi line string (the first line)
This is a KCL multi line string (the second line)
This is a KCL multi line string (the third line)

"""
var = 1

data: |+
  This is a KCL multi line string (the first line)
  This is a KCL multi line string (the second line)
  This is a KCL multi line string (the third line)
var: 1

  • >rappresenta lo stile di piegatura, in cui tutte le nuove righe nella stringa saranno sostituite da spazi.
  • +e -sono usati per controllare l'uso dei newline alla fine delle stringhe. L'impostazione predefinita è mantenere una singola riga alla fine della stringa. Se vogliamo rimuovere tutte le nuove righe, possiamo inserire un -dopo l'indicatore di stile |o >. Se vogliamo mantenere la nuova riga alla fine, dobbiamo inserire +dopo |o >.

Qual è il significato dei numeri che compaiono dopo i simboli | — + > come |1 e |2 in YAML ?

I numeri rappresentano indicatori di indentazione espliciti in YAML. Per le stringhe lunghe in YAML, YAML di solito la prima riga non vuota determina il livello di indentazione della stringa e quando la prima riga non vuota è preceduta da un carattere non iniziale, come una nuova riga, dobbiamo usare indicatori di indentazione espliciti per specificare il livello di rientro del contenuto, come |1e |2così via.

Ad esempio, per il seguente codice KCL:

longStringStartWithEndline = """
This is the second line
This is the third line
"""
longStringStartWithEndline: |2

  This is the second line
  This is the third line

longString = """This is the second line
This is the third line
"""

longString = """\
This is the second line
This is the third line
"""

longString: |
  This is the second line
  This is the third line