কোটলিনে একটি ফাঁকা অ্যারে কীভাবে তৈরি করবেন?


93

আমি Array(0, {i -> ""})বর্তমানে ব্যবহার করছি , এবং আমি আরও ভাল বাস্তবায়ন আছে কিনা তা জানতে চাইArray()

আরও, যদি আমি ব্যবহার করি arrayOfNulls<String>(0) as Array<String>তবে সংকলকটি আমাকে সতর্ক করবে যে এই কাস্ট কখনও সফল হতে পারে না। তবে এটি ভিতরে ডিফল্ট বাস্তবায়ন Array(0, {i -> ""})। আমি কি কিছু মিস করছি?


stackoverflow.com/questions/33583235/… - একটি মন্তব্যে বোঝানো হয়েছে যে সতর্কতাটি একটি বাগ
ডানকান ম্যাকগ্রিগোর

উত্তর:


128

দেরীতে (জুন 2015) কোটলিন স্ট্যান্ডার্ড লাইব্রেরি ফাংশন রয়েছে

public fun <T> arrayOf(vararg t: T): Array<T>

সুতরাং স্ট্রিংয়ের খালি অ্যারে তৈরি করতে আপনি লিখতে পারেন

val emptyStringArray = arrayOf<String>()

4
টাইপযুক্ত অ্যারেগুলি সম্পর্কে কী IntArray? এই মুহুর্তে আমি ব্যবহার করছি arrayOf<Int>().toIntArray(), এর চেয়ে ভাল উপায় আছে কি?
csharpfolk

4
এই পদ্ধতির উদ্দেশ্য কি? কারণ আমরা আকারটি নির্ধারণ করতে পারি না তাই আমরা মান নির্ধারণ করতে পারি না বা পেতে পারি না। অ্যারে [0] নিক্ষেপ java.lang.ArrayIndexOutOfBoundsException:ব্যতিক্রম।
আসিফ মোশতাক

টাইপ Tপরিবর্তে যদি হয় String?
এরি

4
@ চ্যার্পফলক, আপনি খালি ইন্টাআরে
ক্রেমন্স

কোটলিনে স্ট্রিং অ্যারেতে কীভাবে আইটেম যুক্ত করবেন?
সৈয়দ হামজা হাসান

42

শুধু রেফারেন্সের জন্য, আছে emptyArray। উদাহরণ স্বরূপ,

var arr = emptyArray<String>()

দেখা


4
অ্যারে [0] নিক্ষেপ করুন java.lang.ArrayIndexOutOfBoundsException:কীভাবে আমরা এটি ব্যবহার করতে পারি?
আসিফ মোশতাক

8
এটি একটি খালি অ্যারে, আপনি এটি থেকে / থেকে কিছু যোগ / পড়তে পারবেন না। এটি অকেজো বলে মনে হতে পারে তবে কখনও কখনও আপনাকে কোথাও একটি অ্যারে পাস করতে হবে এবং এটি আপনাকে খালি অ্যারে সহজেই তৈরি করতে দেয়।
কুবা বেরানেক

4
এটি মার্টিয়ান ওডিসির উত্তরের চেয়ে ভাল কারণ কোনও অ্যারে শুরু করার জন্য যখন কোনও ডেটা ক্লাসে ব্যবহৃত হয়, অ্যারেঅফ java.util.concurrent.ExecutionException এর কারণ খালিআরে () না করে।
আইসওয়ার্ড

4
এটির একটি অপরিবর্তনীয় দৈর্ঘ্য রয়েছে 0! সুতরাং এটি খুব বিশেষ উদ্দেশ্যে আপনি দরকারী যে কোনও তথ্য সংরক্ষণ করতে চান না (কেবল টাইপ চান ) useful Array(length){""}একটি পছন্দসই অন্তর্ভুক্ত করতে ব্যবহার করুন length। বিস্তারিত জানার জন্য নীচে আমার উত্তর দেখুন ।
মীর-ইসমাইলি

14

খালি নাকি null? এটাই হল প্রশ্ন!

এর একটি অ্যারে তৈরি করতে null, কেবল ব্যবহার করুন arrayOfNulls<Type>(length)


তবে আকারের একটি ফাঁকা অ্যারে তৈরি করতে length, ব্যবহার করুন:

val arr = Array(length) { emptyObject }

নোটটি হ'ল প্রতিটি ডেটা-টাইপ অনুযায়ী আপনাকে অবশ্যই একটিemptyObject যথাযথভাবে সংজ্ঞা দিতে হবে (বিচোক্স যা আপনি চান না null)। E. g। Stringএস জন্য , emptyObjectহতে পারে ""। সুতরাং:

val arr = Array(3) { "" }  // is equivalent for: arrayOf("","","")

এখানে একটি সরাসরি উদাহরণ । নোট করুন যে প্রোগ্রামটি ডিফল্ট হিসাবে দুটি নমুনা যুক্তি দিয়ে চলে।


9

নাল অ্যারে

var arrayString=Array<String?>(5){null}
var nullArray= arrayOfNulls<String>(5)

4
এটি নালার একটি অ্যারে, প্রশ্নে খালি স্ট্রিং নয়।
polkovnikov.ph

2

ব্যবহার:

@JvmField val EMPTY_STRING_ARRAY = arrayOfNulls<String>(0)

এটি নল মানগুলির সাথে সূচনা করে স্ট্রিংয়ের 0 আকারের অ্যারে প্রদান করে।

1. ভুল:

@JvmField val EMPTY_STRING_ARRAY = emptyArray<String>()

এটি ফিরে আসে arrayOfNulls<String>(0)

2. ভুল:

 @JvmField val EMPTY_STRING_ARRAY = arrayOf<String>()

এটি স্ট্রিংসযুক্ত একটি অ্যারে প্রদান করে।



1

আমি খালি অ্যারে তৈরির দুটি উপায় পেয়েছি, ল্যাম্বডা ছাড়াই দ্বিতীয় উপায়:

var arr = Array (0, { i -> "" })
var arr2 = array<String>()

কোটলিনের নাল স্ট্রিং সম্পর্কে, এটি অনুমোদিত নয়। আপনি স্ট্রিং ব্যবহার করতে হবে ? স্ট্রিংগুলি নাল হতে দেওয়ার জন্য টাইপ করুন।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.