2009-05-19 31 views

Trả lời

9

Sử dụng như sau:

Transcript cr 

Bạn có thể sử dụng nó sau khi một giá trị thông qua một thác:

Transcript show: 123; cr 
4

Nhân vật tự nó có thể đạt được như Character cr. Vì vậy, bạn cũng có thể làm điều này:

Transcript show: 'Bla! , Character cr asString. 

Nhưng tất nhiên,

Transcript show: 'Bla!' ; cr. 

là cách thanh lịch hơn.

+0

Ký tự cr asSymbol * và 'Bla!' <---- đóng nó – Iancovici

4

Từ kinh nghiệm lâu dài của tôi, thiếu ký tự thoát là một trong số ít những thứ bị thiếu trong Smalltalk. Để phát trực tuyến, các giải pháp sử dụng cr, tab, v.v. là ok.

Tuy nhiên, nếu bạn cần một ký tự điều khiển cụ thể trong chuỗi, điều này có thể xấu và khó đọc (sử dụng "streamContents:" hoặc "withCRs" để thêm dòng mới). Ngoài ra, bạn có thể muốn sử dụng một trong các cơ chế mở rộng chuỗi (không chuẩn). Ví dụ, trong VisualWorks hoặc Smalltalk/X, bạn có thể viết (nếu tôi nhớ chính xác):

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

hoặc thậm chí với cắt printf giống như của printStrings khác của đối tượng:

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

Tôi đoán, có cũng giống như Squeak và V'Age.

Nhưng, lưu ý: các mở rộng này được thực hiện tại thời điểm thực thi. Vì vậy, bạn có thể gặp phải một hình phạt khi sử dụng nhiều chúng trên nhiều dây.

+0

Cái đầu tiên hoạt động ở Pharo, cái thứ hai gây ra lỗi, nhưng đó có thể là lỗi; vẫn đang điều tra ... –

+0

Hình phạt có thể được giảm nhẹ nếu bạn thể hiện ý định thực hiện chỉ một lần với ['someString with newline tab' expandMacros] khi See [When you come Back] (http: //www.cincomsmalltalk. com/userblogs/travis/blogView? showComments = true & printTitle = When_You_Come_Back & entry = 3346567529) –