biến Immutable
XQuery là một functional programming language, trong đó bao gồm giữa những người khác biến bất biến, vì vậy bạn không thể thay đổi giá trị của một biến. Mặt khác, một bộ sưu tập các chức năng mạnh mẽ có sẵn cho bạn, giải quyết rất nhiều vấn đề lập trình hàng ngày.
let $count := 0
for $prod in $collection]
let $count := $count + 1
return
<counter>{$count }</counter>
let $count
trong dòng 1 định nghĩa biến này trong tất cả các phạm vi, được tất cả các dòng trong trường hợp này như sau. let $count
trong dòng 3 xác định $count
mới là 0+1
, hợp lệ trong tất cả các dòng sau trong khối mã này - không được xác định. Vì vậy, bạn thực sự tăng $count
ba lần một, nhưng loại bỏ kết quả ngay lập tức.
BaseX 'thông tin truy vấn cho thấy phiên bản tối ưu hóa truy vấn này là
for $prod in $collection
return element { "counter" } { 1 }
Giải pháp
Để có được tổng số phần tử trong $collection
, bạn chỉ có thể sử dụng
return count($collection)
Để biết danh sách các hàm XQuery, bạn có thể xem XQuery part of functx chứa cả một danh sách vui vẻ của XQuery ctions và một số chức năng hữu ích khác có thể được đưa vào như một module.
Nguồn
2012-04-24 09:16:49
Cảm ơn rất nhiều. Việc này ổn với tôi. –
Nó hoạt động cho tôi quá Cảm ơn người đàn ông! bạn tiết kiệm trong ngày! – axy108