Lua commenti passato ]]’s

Sto cercando di trovare un modo per utilizzare un commento multiriga su un lotto di codice, ma continua a sbagliare la sintassi come ]] e il pensiero lo voglio finire lì, che non ho!

--[[
  for k,v in pairs(t) do
    local d = fullToShort[k]
    local col = xColours[v[1]] -- It stops here!
    cecho(string.format(("<%s>%s ", col, d))
  end
--]]

Ho pensato che ho letto da qualche parte che era possibile fare uso di un diverso tipo di combinazione per evitare tali errori, come –[=[ o quant’altro… qualcuno Potrebbe aiutarmi?

 

2 Replies
  1. 52

    Come si può vedere in Stringhe tutorial c’è una speciale [===[ sintassi per la nidificazione parentesi quadre. Si può usare in blocco i commenti troppo. Basta notare che il numero di = segni deve essere la stessa in aprire e chiudere sequenza.

    Per esempio 5 equivale a lavoro.

    --[=====[ 
      for k,v in pairs(t) do
        local d = fullToShort[k]
        local col = xColours[v[1]] -- It stops here!
        cecho(string.format(("<%s>%s ", col, d))
      end
    --]=====]
    • Che quasi si sente come un kludge. Mi chiedo perchè l’abbiano fatto in quel modo?
    • Non è un kludge la destra modo di farlo. Ogni altro fisso “magia commento di chiusura sequenza di caratteri” (d’ora in poi MCCCS) fondamentalmente non può far fronte con le stringhe che contengono la MCCCS stesso. Ecco perché si finisce con atrocità come ]]]]><![CDATA[> ogni volta che si desidera scrivere ]]> in CDATA. L’unico modo per evitarlo è quello di fornire abbinato delimitatori che può variare in lunghezza (o di contenuto, come in bash degli heredocs). Molto meglio la domanda sarebbe stata: perché non tutte le altre lingue come Lua?
    • Fresco, funziona anche quando si inserisce un multine stringa tra [[ e ]] all’interno di un blocco di commento. In questo caso, si può anche mettere il = in blocco integrato per distinguerlo dal blocco contenente i confini, ad esempio utilizzando [=[ e ]=]

Lascia un commento