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