Tôi hiện đang thử những thứ trong Scala, cố gắng làm quen với lập trình hàm cũng như nghiêng lại một ngôn ngữ mới (đã lâu rồi).Sáp nhập một danh sách các chuỗi bằng cách sử dụng mkString vs foldRight
Bây giờ, hãy đưa ra một danh sách các chuỗi nếu tôi muốn kết hợp chúng thành một chuỗi dài (ví dụ: "scala", "is", "fun" => "scalaisfun"
) Tôi đã tìm ra một cách để thực hiện nó là thực hiện foldRight
và áp dụng nối trên các phần tử tương ứng. Một cách khác, thừa nhận đơn giản hơn nhiều, là gọi mkString
.
Tôi đã kiểm tra trên github nhưng không thể tìm thấy mã nguồn cho các chức năng tương ứng (bất kỳ trợ giúp nào sẽ được đánh giá cao), vì vậy tôi không chắc chắn về cách thực hiện các chức năng. Từ đỉnh đầu của tôi, tôi nghĩ rằng mkString
linh hoạt hơn nhưng cảm thấy rằng có thể có foldRight
trong quá trình triển khai ở đâu đó. Có sự thật nào không?
Nếu không, scaladocs đề cập đến các yêu cầu mkString
trên toString
cho từng yếu tố tương ứng. Thấy rằng họ đã bắt đầu với chuỗi, đó có thể là một điểm tiêu cực cho mkString
trong trường hợp cụ thể này. Bất kỳ ý kiến về ưu và khuyết điểm của cả hai phương pháp, đối với hiệu suất, đơn giản/sang trọng, vv?
Đây là nguồn của mkString nếu bạn quan tâm. https://www.assembla.com/code/scala-eclipse-toolchain/git/nodes/src/library/scala/collection/TraversableOnce.scala?rev=9752caefeb97123f195b32b4166577e59bf22bce#ln262 – sberry