जब केवल दो भाग होते हैं, अभिव्यक्ति विधि आमंत्रण के रूप में देखी जाती है। अर्थात। के लिए
println "Hello, world"
केवल संभावना
println."Hello, world"
जो निश्चित रूप से यहां ज्यादा मतलब नहीं है किया जाएगा। (***** एक अतिरिक्त के लिए नीचे देखें)
यदि आप चाहें, तो आप अस्पष्टता को हल करने के लिए Console println "Hello, World"
लिख सकते हैं।
यह स्ट्रिंग उदाहरण में है कि ambigus नहीं लगती है, एक स्ट्रिंग मुश्किल से एक विधि नाम हो सकता है, लेकिन निम्न के बारे में सोच: जब A b
लेखन
class B
val b = new B
object A {
def apply(myB: B) { print("apply") }
def b { print("b") }
}
अब,, मैं क्या मिलता है। इसका व्याख्या कैसे किया जाना चाहिए? यह पता चला है कि:
A b // "b"
A.b // "b"
A(b) // apply
तो, एक स्पष्ट नियम है कि दो भाग अभिव्यक्ति में क्या करना है। (मुझे आशा है कि कोई भी नहीं apply
और वास्तविक विधि मंगलाचरण ... के बारे में बंटवारे बाल शुरू होता है)
अलावा
गतिशील कक्षाओं के आगमन के साथ, एक छोटे से चारों ओर खिलौना आप कर सकते हैं और परिभाषित निम्नलिखित
object println extends Dynamic {
def typed[T] = asInstanceOf[T]
def applyDynamic(name: String)(args: Any*) = Console.println(name)
}
और अब देखो !, कोई कोष्ठकों:
println `Hello, world` // prints, "Hello, world"
बेशक
, ऐसा नहीं करते हैं तो कृपया च में है कि बच्चों या वास्तविक जीवन कोड में नहीं।
सिंटेक्स समारोह है? –