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


উত্তর:


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 = 0varএকটি ডিফল্ট মান সেট করা অর্থবোধ করে যেহেতু varকোনওটি পরিবর্তিত হবে বলে প্রত্যাশা করা হয় তবে একটি valস্থির হয় তাই সর্বোত্তম অনুশীলন হ'ল সুস্পষ্টভাবে একটি মান নির্ধারণ করা।
শুক্লসওয়াগ

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

33

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


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

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