IOW, if you want to print 'foo', just print 'foo', but don't print 'foo' printString.

2017-10-21 22:10 GMT+02:00 Nicolas Cellier <nicolas.cellier.aka.nice@gmail.com>:
No. nextPutAll: self is not a good solution at all.
Try it, and you'll get foo, not 'foo'.

'foo' printString has exactly 5 letters: $' $f $o $o $' so it does what you want.

The problem is when you want to print 'foo' printString.
You are in fact doing 'foo' printString printOn: aStream, IOW aStream nextPutAll: 'foo' printString printString.


2017-10-21 21:12 GMT+02:00 Stephane Ducasse <stepharo.self@gmail.com>:
Yes this is my point. I was surprised to get ' on the transcript.

Stef

On Sat, Oct 21, 2017 at 7:49 PM, Alistair Grant <akgrant0710@gmail.com> wrote:
> On Sat, Oct 21, 2017 at 05:28:21PM +0200, Stephane Ducasse wrote:
>> Hi
>>
>> I would like to really understand why
>> 'foo' printString
>> >>>
>> '''foo'''
>>
>> and not why this is not
>>
>> 'foo'
>>
>> itself.
>>
>> Stef
>
> I can't comment on the original thinking behind this, but I agree that
> something like:
>
>
> String>>printOn: aStream
>�� �� �� �� ��"Represent the receiver on the supplied stream"
>
>�� �� �� �� ��aStream nextPutAll: self
>
>
>
> would be much better.
>
> If we're displaying values such as numbers and strings in a UI, e.g.
> table, we normally don't want the strings always enclosed in quotes.
>
> Cheers,
> Alistair
>
>