উত্তর:
এটি অনিরাপদ nullable টাইপ ( T?
) একটি নন- নালযোগ্য টাইপ ( ) এ রূপান্তর T
,
মান হলে !!
নিক্ষেপ করবে ।NullPointerException
null
এটি কোটলিন নাল-সুরক্ষার উপায় সহ এখানে নথিভুক্ত করা হয়েছে ।
sale.latest
থাকতে পারে null
; অ্যাসাইনমেন্টটি কেবল তখনই সফল হবে যদি sale.latest
তা বাতিল হয় না এবং অন্যথায় এনপিই নিক্ষেপ করবে। এটি এর জন্য নাল-সুরক্ষা দেয় val price
: এটির ধরণটি শূন্য হবে। দেখুন kotlinlang.org/docs/reference/null-safety.html
!!
আপনি ব্যর্থ-দ্রুত এবং একটি এনপিইর মূল কারণটি সনাক্ত করতে পারেন। আমি চাই জাভাতেও একই বৈশিষ্ট্য রয়েছে (এটি ডাব্লু / ও কুরুচিপূর্ণ if
বিবৃতি এবং / অথবা assert
আয়ন)।
বিষয়গুলি পরিষ্কার করার জন্য এখানে একটি উদাহরণ। বলুন আপনার এই ফাংশন আছে
fun main(args: Array<String>) {
var email: String
email = null
println(email)
}
এটি নিম্নলিখিত সংকলন ত্রুটি উত্পাদন করবে।
Null can not be a value of a non-null type String
এখন আপনি String
এটিকে প্রবণতাযোগ্য করে তুলতে প্রকারে একটি প্রশ্ন চিহ্ন যুক্ত করে এটি প্রতিরোধ করতে পারেন ।
তাহলে আমাদের আছে
fun main(args: Array<String>) {
var email: String?
email = null
println(email)
}
এটি একটি ফলাফল উত্পাদন করে
null
এখন যদি আমরা ইমেলটির মূল্য শূন্য হয় তখন ফাংশনটি একটি ব্যতিক্রম ছুঁড়ে ফেলাতে চাই, আমরা ইমেলের শেষে দুটি উদ্দীপনা যুক্ত করতে পারি। এটার মত
fun main(args: Array<String>) {
var email: String?
email = null
println(email!!)
}
এটি একটি নিক্ষেপ করবে KotlinNullPointerException
ডাবল-ব্যাং অপারেটরNullPointerException
(বা সংক্ষেপে এনপিই) এর অনুরাগীদের জন্য একটি দুর্দান্ত বিকল্প ।
না নাল কথন অপারেটর
!!
একটি কোনো মান পরিবর্তন করে অ নাল টাইপ এবং একটি ব্যতিক্রম ছোঁড়ার যদি মান নাল হয়।
val nonNull = a!!.length
সুতরাং আপনি লিখতে পারেন a!!
, এবং এটি a
( String
উদাহরণস্বরূপ এখানে একটি ) নন-নাল মান প্রদান করবে বা a
শূন্য হলে একটি এনপিই নিক্ষেপ করবে ।
আপনি যদি এনপিই চান, আপনার কাছে এটি থাকতে পারে তবে আপনাকে এটি স্পষ্টভাবে জিজ্ঞাসা করতে হবে। এই অপারেটরটি এমন ক্ষেত্রে ব্যবহার করা উচিত যেখানে বিকাশকারী গ্যারান্টি দিচ্ছেন - মানটি কখনই শূন্য হয় না ।
!!
একটি বিবৃতি শেষে যখন এর অর্থ কি ? আইজে আমাকেval price = sale.latest!!