2013-09-23 10 views
5

में संकलन नहीं करता है इस प्रकार है:toString स्काला वर्कशीट

object negative { 

    2.toString        //> res0: String = 2 

    (2).toString        //> res1: String = 2 

    // compile error 
    (-2).toString 
} 

अंतिम पंक्ति एक संकलन त्रुटि होती है:

';' expected but ')' found. illegal start of simple expression

हालांकि, एक ही तीन लाइनें एक सामान्य स्कैला स्रोत फ़ाइल के भीतर संकलित और ठीक चलती हैं।

यह वर्कशीट में क्यों काम नहीं करता है?

यह ग्रहण 3.7.2 उपयोग कर रहा है, स्काला आईडीई 3.0.0.v-2_10, स्काला वर्कशीट 0.1.4.v-2_10

[अपडेट किया गया: इस सवाल का मूल रूप से इस्तेमाल किया toBinaryString, लेकिन समस्या यह भी होता है टूस्ट्रिंग के साथ, इसलिए मैंने इसे सरल बना दिया है]

उत्तर

1

यह एक बग है। वर्कशीट के मुख्य ऑब्जेक्ट (पहले एक) में कोड निष्पादित होने से पहले वाद्य यंत्र होता है। 2 उल्लिखित मामले में, उपकरण का परिणाम वैध स्कैला कोड मान्य नहीं है।

लेकिन यह केवल एक समस्या है यदि कोड मुख्य वस्तु में शीर्ष स्तर पर है। यदि कोड एक ही फ़ाइल में किसी फ़ंक्शन या किसी भिन्न ऑब्जेक्ट में स्थानांतरित हो जाता है, तो यह ठीक काम करता है।

+0

स्पष्टीकरण के लिए धन्यवाद। मैंने इसे एक बग के रूप में रिपोर्ट किया है [यहां] (https://github.com/scala-ide/scala-worksheet/issues/160) – DNA

+0

यह भी काम करता है अगर आप इसे मुख्य ऑब्जेक्ट में कोड ब्लॉक {} में लपेटते हैं । – DNA

1

ग्रहण कार्यपत्रक काफी बीटा हैं; उदाहरण के लिए मैंने पिछली बार जांच की, यह किसी फ़ंक्शन पर @tailrec सजावट को संभाल नहीं सका।

तो यह ग्रहण में शायद एक बग या सीमा है। आखिरकार, यह सुविधा काफी नई लगती है, और कई अन्य बग भी हैं।

0

(-2).toBinaryString मेरे लिए एक ही त्रुटि देता है।

ध्यान दें कि java.lang.Integer.toBinaryString(-2) ठीक काम करता है।

संबंधित मुद्दे