Mã Groovy sauLàm thế nào để có được tất cả các yếu tố từ một danh sách không có phần tử cuối cùng?
lines = ['0','1','2','3','4','5']
println lines[1..lines.size()-1]
println lines[1..-1]
println lines[1..<lines.size()-1]
println lines[1..<-1]
println lines[1..<-2]
println lines[1..-2]
sản xuất sản lượng này:
[1, 2, 3, 4, 5]
[1, 2, 3, 4, 5]
[1, 2, 3, 4]
[1, 0]
[1, 2, 3, 4, 5]
[1, 2, 3, 4]
Kể từ -1
là chỉ số của phần tử cuối cùng trong danh sách, là người đầu tiên hai có ý nghĩa (dãy trong Groovy bao gồm các yếu tố cuối thay vì bỏ qua nó như ở mọi nơi khác trong Java :-()
Dòng # 3 là đầu ra mong muốn (danh sách không có phần tử đầu tiên và cuối cùng)
Tôi lo lắng về kết quả # 4: Tại sao tôi nhận được [1, 0]
cho 1..-1
?
Ngoài ra [1, 2, 3, 4, 5]
cho phạm vi 1..<-2
có vẻ sai.
Tại sao điều đó lại xảy ra?
nên không phải là dãy bắt đầu từ 0 thay vì 1 nếu bạn muốn bao gồm tất cả các yếu tố nhưng cuối cùng? (trong ví dụ của bạn, bạn luôn loại trừ yếu tố đầu tiên) – epidemian
Trong trường hợp của tôi, tôi cũng không muốn yếu tố đầu tiên nhưng đó không phải là điểm chính của câu hỏi của tôi. –