স্কেলে, 'ভল এ: এ = _' (আন্ডারস্কোর) এর অর্থ কী?


উত্তর:


143

val a: A = _একটি সংকলন ত্রুটি। উদাহরণ স্বরূপ:

scala> val a: String = _
<console>:1: error: unbound placeholder parameter
       val a: String = _
                       ^

কাজটি কি var a: A = _( varপরিবর্তে নোট val)। চক তার উত্তরে যেমন বলেছে, এটি পরিবর্তনশীলটিকে একটি ডিফল্ট মান হিসাবে সূচনা করে। স্কালা ভাষা নির্দিষ্টকরণ থেকে:

0 টি টি যদি
আন্ত হয় বা এর সাব্রিজড টাইপের একটি, টি লম্বা
হলে 0 ল , টি ফ্লোট
হলে 0.0 ফ , টি ডাবল হলে 0.0 ডি,
টি বুলিয়ান হলে মিথ্যা,
() টি ইউনিট হলে,
অন্য সব ধরণের জন্য বাতিল টি


6
হা, ভাল / ভার্চ স্যুইচটিতে দুর্দান্ত ধরা catch আমার মস্তিষ্ক ঠিক এটি পেরেছি।
— চক

2
কেন এটি দিয়ে কাজ করা হয়নি তা সম্পর্কে কোনও অন্তর্দৃষ্টি val?
— এরিক কাপলুন

4
@ এরিক অলিক: এটি খাঁটি জল্পনা, তবে val a: Int = _সম্ভবত এটি একটি সংকলন ত্রুটি কারণ এটি যদি কাজ করে তবে এটি খারাপ অভ্যাস হবে। এটি কেবল লেখার একটি অস্পষ্ট উপায় হবে val a: Int = 0। varএকটি ডিফল্ট মান সেট করা অর্থবোধ করে যেহেতু varকোনওটি পরিবর্তিত হবে বলে প্রত্যাশা করা হয় তবে একটি valস্থির হয় তাই সর্বোত্তম অনুশীলন হ'ল সুস্পষ্টভাবে একটি মান নির্ধারণ করা।
— শুক্লসওয়াগ

1
@ শুক্লসওয়াগ: কেবলমাত্র যদি আপনি এটির একটি পূর্ণসংখ্যা জানেন। আমি এটিকে এমন ধরণের ভ্যালিয়াল শুরু করার জন্য ব্যবহার করার চেষ্টা করছি যা আমি এখনও জানি না।
— অ্যাড্রিয়ান মে

33

এটি aপ্রকারের ডিফল্ট মানটির সূচনা করে A। উদাহরণস্বরূপ, কোনও ইন্টের ডিফল্ট মান 0 এবং একটি রেফারেন্স টাইপের ডিফল্ট মান নাল ull


10
NotNullবৈশিষ্ট্যের সাথে মিশ্রিত শ্রেণীর ডিফল্ট মান কী ? :-)
— জিন-ফিলিপ পেলিট

9
@ জিন-ফিলিপপ্লেট: স্কেল ২.৯.০.১ হিসাবে (যা আমি ব্যবহার করেছি সবচেয়ে সাম্প্রতিক সংস্করণ), নোটনুল বৈশিষ্ট্যে মিশ্রিত শ্রেণীর ডিফল্ট মান হ'ল - নাটকীয় বিরতি - নাল । আমি আশা করি এটি সম্ভবত এক পর্যায়ে পরিবর্তিত হবে, তবে বর্তমানে এটি _ট্রাম্পগুলি বলে মনে হচ্ছে NotNull।
— চক
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.