কীভাবে কোনও অ্যারের সমস্ত সদস্যকে সুইফটে একই মান হিসাবে শুরু করতে পারি?


88

আমার সুইফটে একটি বড় অ্যারে আছে। আমি সমস্ত সদস্যকে একই মানতে শুরু করতে চাই (অর্থাত এটি শূন্য বা অন্য কোনও মান হতে পারে)। সেরা পদ্ধতির কি হবে?


4
অ্যারে তৈরি করুন, সমস্ত উপাদানগুলির মধ্য দিয়ে লুপ করুন এবং প্রতিটি সেট করুন, ঠিক যেমন আপনি অন্য কোনও প্রোগ্রামিং ভাষায় করেন।
রবার্ট হার্ভে

19
var a = Array(count:100, repeatedValue:0)ঠিক এই বৈধ প্রশ্নের উত্তর।
রড

@ রড, আমি চেষ্টা করব যদি প্রশ্নটি আবার খোলা হয় তবে আপনি এটি উত্তর হিসাবে পোস্ট করতে পারেন।
এম_পাওয়ার

4
লুপিং ভ্যাক্টর ম্যাথ ব্যবহারের চেয়ে কমপক্ষে একটি গতিবেগের ধীরে ধীরে কম।
λαβέ.λαβέ

উত্তর:


178

আসলে, এটি সুইফ্টের সাথে বেশ সহজ। অ্যাপলের নথিতে যেমন উল্লেখ করা হয়েছে , আপনি একই ধরণের পুনরাবৃত্ত মানের সাথে একটি অ্যারে শুরু করতে পারেন:

সঙ্গে পুরাতন সুইফট সংস্করণ :

var threeDoubles = [Double](count: 3, repeatedValue: 0.0)

যেহেতু সুইফট 3.0 :

var threeDoubles = [Double](repeating: 0.0, count: 3)

যা দেবে:

[0.0, 0.0, 0.0]

16
দেখে মনে হচ্ছে যে সুইফট 3 এ এটি পরিবর্তিত হয়েছেvar threeDoubles = [Double]( repeating: 0.0, count: 3 )
ppulojr

আমি আবিষ্কার করেছি এটি সত্যিই স্লুওউউউ, একটি 16 এমবি অ্যারে এইভাবে সাফ করতে কয়েক সেকেন্ড সময় নেয়। সি ইন, memset(p, 0, 16*1024*1024)ব্যবহারিকভাবে তাত্ক্ষণিক।
wcochran

@wcochran আপনি কি এটি করার আরও ভাল উপায় আবিষ্কার করেছেন?
স্টিফেনবোশ

@ জাভাদবা নোপ তবুও আশ্চর্য হয়ে যায় যে যখন হার্ডওয়্যারটি দ্রুত করতে পারে তখন সুইফটে এটি করার কোনও কার্যকর ব্যবস্থা নেই। উত্সটি অনুসন্ধান করার পক্ষে এটি মূল্যবান।
wcochran

36

এটি সুইফ্ট 3 এ একটি উত্তর হবে:

var threeDoubles = [Double]( repeating: 0.0, count: 3 )

4
অটোসোজেস্ট স্টেটস [ডাবল] (পুনরায় পুনরুক্তি (3.22, গণনা: 5%), এখনও স্পষ্টভাবে টাইপিং (পুনরাবৃত্তি, গণনা) বৈধ বলে মনে হচ্ছে
আশ্বিন জি
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.