मैं हाल ही में 'ग्रोवी इन एक्शन' पढ़ रहा हूं। अध्याय 7 में, यह * पेश किया गया। ऑपरेटर । जब मैं इस ऑपरेटर के बारे में कोड चलाता हूं, तो मुझे कुछ गलतियां मिलती हैं।ग्रोवी *। ऑपरेटर
class Invoice {
List items
Date date
}
class LineItem {
Product product
int count
int total() {
return product.dollar * count
}
}
class Product {
String name
def dollar
}
def ulcDate = new Date(107,0,1)
def ulc = new Product(dollar:1499, name:'ULC')
def ve = new Product(dollar:499, name:'Visual Editor')
def invoices = [
new Invoice(date:ulcDate, items: [
new LineItem(count:5, product:ulc),
new LineItem(count:1, product:ve)
]),
new Invoice(date:[107,1,2], items: [
new LineItem(count:4, product:ve)
])
]
//error
assert [5*1499, 499, 4*499] == invoices.items*.total()
अंतिम पंक्ति अपवाद फेंक देगी। सबसे पहले, मैं समझा सकता हूं कि यह त्रुटि क्यों खुश है। चालान एक सूची है, और तत्व का प्रकार चालान है। तो सीधे आइटम का उपयोग कर एक त्रुटि होगी। मैं invoices.collect{it.items*.total()}
का उपयोग करके इसे ठीक करने का प्रयास करता हूं लेकिन फिर भी एक असफल असर मिलता है। तो, मैं जोरदार सफलता कैसे बना सकता हूं और क्यों चालान * .items * .total() अपवाद फेंक देगा।
बहुत बढ़िया है, धन्यवाद! – linuxlsx