2015-11-07 7 views
5

मैं स्विफ्ट में sortInPlace फ़ंक्शन का उपयोग करने का प्रयास कर रहा हूं लेकिन यह काम नहीं कर रहा है। जब मैं सॉर्टिनस्थल के बजाय सॉर्ट फ़ंक्शन का उपयोग करता हूं तो यह काम करता है।स्विफ्ट 2 में सॉर्ट और sortInPlace के बीच अंतर?

कृपया इन 2 फ़ंक्शन के बीच अंतर बताएं। यदि आप दोनों कार्यों के उपयोग को प्रदर्शित करने वाले छोटे कोड नमूने प्रदान कर सकते हैं तो यह बहुत उपयोगी होगा।

+3

'sort' _returns_ एक सॉर्टेड सरणी जिसमें 'स्वयं' को छोड़कर 'स्वयं' के तत्व शामिल हैं, जबकि 'sortInPlace' बस' self' टाइप करता है। – courteouselk

+3

आप आसानी से अपने आप को ढूंढ सकते हैं: सीएमडी क्रमशः प्रतीक पर क्लिक करें और विवरण – vadian

+0

स्विफ्ट 3 में कोई 'sortInPlace' नहीं है। इसके बजाय एक 'क्रम' और 'क्रमबद्ध' है। – Honey

उत्तर

14
var mutableArray = [19, 7, 8, 45, 34] 

// function sort sorts the array but does not change it. Also it has return 

mutableArray.sort() 

mutableArray 
// prints 19, 7, 8, 45, 34 

// function sortInPlace will mutate the array. Do not have return 

mutableArray.sortInPlace() 

mutableArray 
// prints 7, 8, 19, 34, 45 
1

एफडब्ल्यूआईडब्ल्यू, स्विफ्ट 3 में sortInPlace नहीं है। इसके बजाय sort & sorted है।

var mutableArray = [19, 7, 8, 45, 34] 

mutableArray.sortInPlace() // error : 'sortInPlace()' has been renamed to 'sort()' 

mutableArray.sort() // 
print(mutableArray) // [7, 8, 19, 34, 45] 

mutableArray.sorted() 

print(mutableArray) // [19, 7, 8, 45, 34] 
let anotherArray = mutableArray.sorted() 

print(anotherArray) // [7, 8, 19, 34, 45] 

आप sortInPlace या sort जो कार्यों परिवर्तनशील कर रहे हैं उपयोग करने के लिए तो सरणी एक var होना चाहिए, अन्यथा आप एक गुमराह त्रुटि कह मिल सकता है चाहते हैं: ') तरह ('

है का नाम बदलकर 'सॉर्टेड()'

+1

से नीचे मेरा उत्तर देखें विशेष रूप से "स्विफ्ट 2" टैग किया गया है, मुझे यकीन नहीं है कि हमें एक विशिष्ट संस्करण के बारे में इस तरह के विशिष्ट प्रश्न के लिए वाक्यविन्यास अद्यतन पोस्ट करना होगा ... – Moritz

+1

@EricAya True। मैं सहमत हूं लेकिन कोई शायद यह नहीं जानता कि 'sortInPlace' स्विफ्ट 2 के लिए विशिष्ट है। मैं' sortInPlace 'क्या ढूंढने के लिए चारों ओर देख रहा था और महसूस किया कि स्विफ्ट 3 में कोई ऐसी चीज नहीं है। – Honey

+1

निश्चित रूप से। :) ठीक है, मुझे लगता है कि यह जवाब मुझे चोट नहीं पहुंचाता है। यह सिर्फ इतना है कि मैं ऑफ-विषय सामान को ठीक कर रहा हूं, और मुझे इस बारे में निश्चित नहीं था। : p – Moritz

संबंधित मुद्दे