Domanda

che voglio fare qualcosa di simile: Trascrizione spettacolo: '\ n'. come?

È stato utile?

Soluzione

Utilizza il seguente:

Transcript cr

Si può usare dopo un valore attraverso una cascata:

Transcript show: 123; cr

Altri suggerimenti

Dalla mia esperienza (lunga), caratteri di escape mancanti sono una delle poche cose che mancano in Smalltalk. Per lo streaming, le soluzioni che utilizzano cr, scheda ecc sono ok.

Tuttavia, se avete bisogno di un particolare carattere di controllo in una stringa, questo può essere brutto e difficile da leggere (usando "streamContents:", o "withCRs" per aggiungere una nuova riga). In alternativa, si consiglia di utilizzare uno dei (non standard) i meccanismi di espansione di stringa. Per esempio, in VisualWorks o Smalltalk / X, è possibile scrivere (se non ricordo male):

'someString with newline<n>and<t>tabs' expandMacros

o anche con printf-come affettare printStrings di altri oggetti:

'anotherString<n><t>with newlines<n>and<t>tabs and<p>' expandMacrosWith:(Float pi)

Credo che, ci sia qualcosa di simile in Squeak e V'Age pure.

Ma, essere consapevoli: queste espansioni sono fatte al momento dell'esecuzione. Quindi, è possibile riscontrare un rigore quando li utilizzano pesantemente su molte corde.

Il carattere in sé può essere raggiunto come Character cr. Quindi, si potrebbe anche fare questo:

Transcript show: 'Bla! , Character cr asString.

Ma, naturalmente,

Transcript show: 'Bla!' ; cr.

è il modo più elegante.

Quello che faccio come vantaggio è aggiungere una "linea" metodo alla classe String:

line
    ^self, String lf

Poi si può solo dire obj showSomething: 'Hello world!' line.

O chiamare a capo, endl, lf, ecc ...

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top