एक जादू हास्केल लेखन के बाद वापस स्काला के लिए आ रहा भर में इसका इस्तेमाल करने की है, मैं थोड़ा अधिक पठनीय मेरी कक्षा परिभाषाओं बनाने के लिए प्रकार कीवर्ड का उपयोग शुरू कर दिया है, जैसे:स्काला प्रकार कीवर्ड: कैसे सबसे अच्छा कई वर्गों
type RestfulParams = Map[String, String]
def canonicalize(params: RestfulParams): String = { ... }
जिस समस्या में मैंने भाग लिया है वह यह है कि इन प्रकार की परिभाषाओं को कक्षा या वस्तु के अंदर रहने की आवश्यकता होती है - वे "प्रथम श्रेणी के नागरिक" नहीं हैं जैसे कि वे हास्केल में हैं। यदि मैं किसी वर्ग या ऑब्जेक्ट के बाहर किसी प्रकार को परिभाषित करने का प्रयास करता हूं, तो मुझे एक कंपाइलर expected class or object definition
मिलता है।
मेरी समस्या यह है कि पैकेज में कई वर्गों और ऑब्जेक्ट्स में इन प्रकारों का उपयोग कैसे करें? क्या मैं अब किया है काफी बदसूरत लगता है:
object RestfulTypes { type RestfulParams = Map[String, String] etc }
और फिर एक और वर्ग फ़ाइल में:
import utils.{RestfulTypes => RT}
def get(resource: String, params: RT.RestfulParams): String = { ... }
वहाँ ऐसा करने का एक अच्छा तरीका है - और संयोग स्काला गुरु है लगता है कि यह एक अच्छी बात है चीज या बुरी चीज जो कि वर्गों/वस्तुओं के भीतर ही परिभाषित की जा सकती है?
क्यों नहीं 'आयात utils.RestfulTypes._'? – soc