tôi thu thập cảm giác là chuỗi suy là không cần thiết, bởi vì nó không phải là nhiều hơn nữa súc tích hơn nối:
val str2 = "Hello, ${str1}!"
val str2 = "Hello, "+str1+"!"
Lập luận rằng các Toán tử "+" trên Chuỗi phải được định dạng mà không có khoảng trắng, Martin Odersky says,
Với quy ước mới, nhu cầu thay thế chuỗi (thường là đưa ra trên danh sách Scala) tất cả nhưng biến mất. So sánh:
"test results: ${result1}, ${result2}"
với phiên bản đầu tiên ở trên. Bạn đã lưu một ký tự cho mỗi thay thế , hầu như không đáng để có quy ước cú pháp mới. Nói cách khác, cú pháp thay thế chuỗi Scala được viết
"+...+"
thay vì
${...}
hoặc một số đề nghị tương tự khác. Mặt khác, nếu bạn nhấn mạnh vào các không gian xung quanh dấu +, câu chuyện trở nên kém thuyết phục hơn nhiều.
Ngẫu nhiên, hãy xem bài đăng trên blog, "String Interpolation in Scala" nơi được mô phỏng bằng phản chiếu.
Nguồn
2010-03-20 08:30:21
Câu hỏi này cũng tương tự như http://stackoverflow.com/ câu hỏi/2183503/thay thế-giá trị-in-a-string-với-placeholders-in-scala/2189134 với nhiều câu trả lời khác nhau. –
@Mitch: Nó thực sự không phải là cùng một câu hỏi. Người hỏi khác muốn biết làm thế nào để làm điều đó; Tôi muốn biết lý do đằng sau quyết định của các nhà thiết kế Scala, được trả lời dưới đây. –
Hiện tại có (Nội suy chuỗi Scala 2.10): 's" Xin chào, $ str1 "' (http://docs.scala-lang.org/overviews/core/string-interpolation.html) –