2013-04-16 36 views
11

tôi nhận được kết quả Stange từ ba """ chuỗi trích dẫn khi sử dụng chuỗi suy và đường phá vỡ:Chuỗi suy với dấu ngoặc kép ba và nhiều dòng

val foo = "bar" 

s"""$foo""" 

này là ok.

s""" 
$foo 
"""  

này là sai, tôi nhận được kết quả như sau:

" 
bar 
" 

Tại sao các heck đang có dấu ngoặc kép?

+1

Nó không phải chỉ là một '" \ nbar \ n "'? – 4e6

+1

Tại sao bạn nghĩ đó là vấn đề nội suy? '" "" | thanh | "" "' (đa cấp) sẽ cung cấp cho bạn kết quả chính xác như nhau (đầu và cuối '\ n' mà REPL bao quanh trong dấu ngoặc kép) –

Trả lời

17

Đây chỉ là REPL xung quanh các chuỗi nhiều dòng trong dấu ngoặc kép. Bạn sẽ thấy chuỗi thực tế không chứa dấu ngoặc kép:

res0.contains("\"") 
res1 : Boolean = false 
+0

Ah, tất nhiên. Có vẻ như REPL in thêm dấu ngoặc kép cho kết quả chuỗi khi chúng trải dài trên nhiều dòng. (Vì lý do gì). Cảm ơn –

+4

@ 0__ REPL in dấu ngoặc kép khi chuỗi được bao quanh bởi khoảng trống, điều này có ý nghĩa hoàn toàn để xem chuỗi bắt đầu và kết thúc ở đâu. – sschaef

+1

Nó sẽ phù hợp hơn với * luôn luôn * dấu ngoặc kép in, trừ khi bạn đang sử dụng println trên chuỗi. – Blaisorblade

Các vấn đề liên quan