Trong C # nếu tôi muốn tách một string
người khác, string
tôi phải làm một cái gì đó như thế:
testString.Split(new string[] { "anotherString" }, StringSplitOptions.None);
Từ String.Split
Tài liệu MSDN quá tải, chúng ta có thể thấy việc triển khai và tại sao phải thực hiện một cuộc gọi như vậy.
Đến từ Python , thật khó để tôi hiểu chính xác tại sao cần một cuộc gọi như vậy. Ý tôi là tôi có thể sử dụng Regex.Split
để có được một cú pháp tương tự như cách triển khai của Python nhưng tôi sẽ phải làm điều đó với chi phí ít hiệu năng hơn (thời gian thiết lập) cho mọi thứ đơn giản .
Về cơ bản, câu hỏi của tôi là tại sao chúng ta không thể làm:
testString.Split("anotherString");
Lưu ý rằng tôi không đề xuất bất kỳ nguyên mẫu cũng như thực hiện. Tôi hiểu lý do tại sao bạn không thể triển khai phiên bản trên khi xem xét API hiện tại. Mục tiêu của tôi là hiểu lý do tại sao một API như vậy có thể được tạo ra khi xem xét lợi ích mà cú pháp trên mang lại. Đến bây giờ, tính linh hoạt dường như là mục tiêu của hiện tại String.Split
có ý nghĩa, nhưng thành thật mà nói tôi thực sự nghĩ rằng có một số loại hiệu suất đạt được ở đâu đó. Tôi đoán tôi đã sai.
testString.Split(",.;");
và testString.Split(new Char [] {',', '.', ';',);
đó không phải là điều tương tự.
IEnumerable<char>
nguyên mẫu bổ sung mà bạn đang đề xuất có thể xuất hiện mơ hồ trong một số trường hợp nhất định (bạn có phân định toàn bộ chuỗi hoặc phân định theo từng ký tự của chuỗi không?) Chỉ là một phỏng đoán.
testString.Split("anotherString");
, tôi khá tự tin để nói rằng hành vi dự kiến là phân định trên toàn bộ chuỗi ( anotherString
trong trường hợp này).