मैं एपीआई दस्तावेज़ों में देखता हूं विधि List
पर विधि है, लेकिन मुझे यह स्पष्ट नहीं है कि इसे पैरामीटर के लिए क्या चाहिए। वर्तमान आवश्यकता एक बहुत ही सरल सीधे अल्फा तुलना के लिए है।मैं डार्ट में तारों की सूची कैसे क्रमबद्ध कर सकता हूं?
उत्तर
प्रश्न के लिए धन्यवाद! आप इस तरह स्ट्रिंग्स की एक सूची सॉर्ट कर सकते हैं:
main() {
var fruits = ['bananas', 'apples', 'oranges'];
fruits.sort();
print(fruits);
}
ऊपर कोड प्रिंट:
apples, bananas, oranges
सूचना है कि sort()
एक मूल्य वापस नहीं करता है। यह एक नई सूची बनाने के बिना सूची का प्रकार है। आप सॉर्ट और एक ही पंक्ति में प्रिंट करना चाहते हैं, तो आप विधि cascades उपयोग कर सकते हैं:
print(fruits..sort());
अधिक नियंत्रण के लिए, आप अपने खुद तुलना तर्क को परिभाषित कर सकते हैं। कीमत के आधार पर फल को सॉर्ट करने का एक उदाहरण यहां दिया गया है।
main() {
var fruits = ['bananas', 'apples', 'oranges'];
fruits.sort((a, b) => getPrice(a).compareTo(getPrice(b)));
print(fruits);
}
चलो देखते हैं कि यहां क्या हो रहा है।
एक सूची में sort विधि है, जिसमें एक वैकल्पिक पैरामीटर है: Comparator। एक तुलनाकर्ता typedef
या फ़ंक्शन उपनाम है।
int Comparator(T a, T b)
डॉक्स से::
एक तुलनाकारी समारोह एक नकारात्मक पूर्णांक लौटने अगर एक से छोटी है द्वारा इस तरह के कुल आदेश का प्रतिनिधित्व करता है इस मामले में, यह एक समारोह है कि लगता है कि के लिए एक उपनाम है बी, शून्य अगर बी के बराबर है, और बी से अधिक है तो एक सकारात्मक पूर्णांक। इस प्रकार
सेठ का विस्तृत जवाब देने के लिए केवल एक अंक जोड़ने के लिए, सामान्य रूप में,
(a, b) => foo(a, b)
sort
में पारित कर दिया है, समारोह foo
एक पूर्णांक परिणाम का जवाब देना चाहिए:
- अगर एक < बी, परिणाम < 0,
- यदि कोई = बी, परिणाम = 0 होना चाहिए, और
- अगर एक> ख, परिणाम> 0.
, दोनों a
और b
Comparable
रों होना चाहिए होना चाहिए।
आज के बाद, आपको सिर्फ list.sort() करने में सक्षम होना चाहिए। सॉर्ट विधि का तर्क अब वैकल्पिक है, और यह उस फ़ंक्शन पर डिफ़ॉल्ट होता है जो तुलना करता है तत्वों पर स्वयं को। चूंकि स्ट्रिंग तुलनात्मक है, इसे अभी काम करना चाहिए।
क्या सूची सॉर्ट() विधि कभी भी एक तुलनित्र फ़ंक्शन की आवश्यकता नहीं है? या वहां एक प्रतिगमन था? मैं उबंटू 12.04 पर डार्ट 0.2.6.0_r15355 का उपयोग कर रहा हूं और निम्नलिखित परिणाम प्राप्त कर रहा हूं: [3,1,2] .sort() == null और ['a', 'c', 'b']। क्रमबद्ध करें () == बातिल। – devdanke
ओह! डार्ट सरणी को सॉर्ट कर रहा था :-) लेकिन सॉर्ट() फ़ंक्शन शून्य लौटाता है :-(तो "प्रिंट ([3,1,2] .sort())" आउटपुट "नल"। इस मामले में, डार्ट देव हैं एक धाराप्रवाह प्रोग्रामिंग शैली को लागू नहीं करना। मेरी इच्छा है कि वे करेंगे। क्योंकि तब आप तुरंत कॉलिंग सॉर्ट() के परिणाम का उपयोग कर सकते हैं। – devdanke
आलसी सॉर्टिंग। परिणाम IQueryable है।
कस्टम तुलनित्र को तर्क के रूप में पारित किया जा सकता है।
import 'package:queries/collections.dart';
void main() {
var fruits = ["grape", "passionfruit", "banana", "mango",
"orange", "raspberry", "apple", "blueberry"];
var sorted = new Collection(fruits)
.orderBy((fruit) => fruit.length)
.thenBy((fruit) => fruit);
for(var fruit in sorted) {
print(fruit);
}
}
आउटपुट:
mango
banana
orange
blueberry
raspberry
passionfruit
- 1. मैं तारों की सरणी कैसे क्रमबद्ध कर सकता हूं?
- 2. तारों की सूची को कैसे क्रमबद्ध करें?
- 3. मैं SASS में तारों को कैसे उद्धृत कर सकता हूं?
- 4. मैं पर्ल में तिथियों को कैसे क्रमबद्ध कर सकता हूं?
- 5. मैं तारों की सरणी कैसे ले सकता हूं और उन्हें फ़िल्टर कर सकता हूं?
- 6. मैं तत्वों की सूची से कैसे समूह कर सकता हूं?
- 7. स्ट्रिंग्स में क्या होता है जब मैं तारों की सरणी को क्रमबद्ध रूप से सॉर्ट कैसे कर सकता हूं?
- 8. तारों की सूची
- 9. मैं जेएसपी में कई अलग-अलग तरीकों से सूची कैसे क्रमबद्ध कर सकता हूं?
- 10. एएसपी.नेट एमवीसी में उपयोगकर्ता के चयन के आधार पर मैं सूची कैसे क्रमबद्ध कर सकता हूं?
- 11. मैं जावा में किसी मानचित्र की चाबियाँ कैसे क्रमबद्ध कर सकता हूं?
- 12. मैं कैसे निर्धारित कर सकता हूं कि कोई सूची केवल एक स्ट्रिंग या तारों की सूची है या नहीं?
- 13. मैं वीआई संपादक में एक समय में 3 तारों की खोज कैसे कर सकता हूं?
- 14. मैं एनएसएमयूटेबलएरे को वर्णानुक्रम से कैसे क्रमबद्ध कर सकता हूं?
- 15. मैं एक इंटरफ़ेस को क्रमबद्ध कैसे कर सकता हूं?
- 16. मैं सी # में सूची <SomeStruct>() में प्रत्येक सूची आइटम के क्रमबद्ध नाम को ओवरराइड कैसे कर सकता हूं?
- 17. मैं सूची की पहली स्थिति में कैसे जोड़ सकता हूं?
- 18. मैं कस्टम ऑब्जेक्ट्स की सरणीसूची कैसे संग्रहीत कर सकता हूं?
- 19. मैं .NET में शब्दकोशों की सूची कैसे बना सकता हूं?
- 20. मैं Django मॉडल में तारों की सरणी कैसे संग्रहीत कर सकता हूं?
- 21. मैं आरसीपीपी में वैक्टरों की सूची कैसे बना सकता हूं?
- 22. आईफोन/आईओएस: मैं अपने ऐप को स्थानीयकृत सभी भाषाओं में स्थानीय तारों की सूची कैसे प्राप्त कर सकता हूं?
- 23. टी के गुणों के आधार पर मैं सूची <T> कैसे क्रमबद्ध कर सकता हूं?
- 24. मैं समानांतर में कमांड की सूची कैसे चला सकता हूं?
- 25. मैं सूची समझ में असाइनमेंट कैसे कर सकता हूं?
- 26. मैं डेल्फी में ऑब्जेक्ट्स की मनमानी संपत्ति पर एक टीएलिस्ट को कैसे क्रमबद्ध कर सकता हूं?
- 27. मैं कहां क्रमबद्ध हूं?
- 28. मैं Django की GenericForeignKey को मॉडलों की सूची में कैसे प्रतिबंधित कर सकता हूं?
- 29. क्यूटी- मैं उन फ़ॉन्ट्स की सूची कहां पा सकता हूं जिनका मैं उपयोग कर सकता हूं?
- 30. तारों की सूची में आइटम को
धन्यवाद! शिकायत करने के लिए खेद है, लेकिन जब मैं उपरोक्त की स्पष्ट बहुमुखी प्रतिभा की सराहना करने की कोशिश कर रहा हूं, तो मुझे यह पिछली भाषा के अनुभव के साथ अंतर्ज्ञानी या इनलाइन नहीं मिल रहा है। क्या आपके पास लोगों के पास स्क्वायर लकड़ी के माउस के साथ कोई है और इनमें से कुछ सामानों के साथ एक लंबा ग्रे दाढ़ी आ रहा है? :) –
यह एक अजीब ऐतिहासिक आर्टिफैक्ट है। तुलनित्र वैकल्पिक होना चाहिए। यह होता था, लेकिन हमने कुछ समय पहले वैकल्पिक पैरामीटर सिंटैक्स को बदल दिया, जिसने हमें कुछ समय के लिए सभी पैरामीटर गैर-वैकल्पिक बनाने के लिए मजबूर किया, जिसमें यह भी शामिल था। हमें अभी इसे ठीक करने का मौका नहीं मिला है और इसे फिर से वैकल्पिक बना दिया गया है। – munificent
धन्यवाद @ सुनने के लिए बहुत खुशी है कि यह जल्द ही तय हो जाएगा। बग देखें http://code.google.com/p/dart/issues/detail?id=1235 –