Scala Language
क्षेत्र
खोज…
परिचय
स्केला पर स्कोप परिभाषित करता है कि एक मान ( def
, val
, var
या class
) कहां से एक्सेस किया जा सकता है।
वाक्य - विन्यास
- घोषणा
- निजी घोषणा
- निजी [यह] घोषणा
- निजी [से] घोषणा
- संरक्षित घोषणा
- संरक्षित [कहां से] घोषणा
सार्वजनिक (डिफ़ॉल्ट) क्षेत्र
डिफ़ॉल्ट रूप से, गुंजाइश public
, मान को कहीं से भी एक्सेस किया जा सकता है।
package com.example {
class FooClass {
val x = "foo"
}
}
package an.other.package {
class BarClass {
val foo = new com.example.FooClass
foo.x // <- Accessing a public value from another package
}
}
एक निजी दायरा
जब गुंजाइश निजी होती है, तो इसे केवल वर्तमान वर्ग या वर्तमान वर्ग के अन्य उदाहरणों से ही एक्सेस किया जा सकता है।
package com.example {
class FooClass {
private val x = "foo"
def aFoo(otherFoo: FooClass) {
otherFoo.x // <- Accessing from another instance of the same class
}
}
class BarClass {
val f = new FooClass
f.x // <- This will not compile
}
}
एक निजी पैकेज-विशिष्ट गुंजाइश
आप एक पैकेज निर्दिष्ट कर सकते हैं जहां निजी मूल्य तक पहुँचा जा सकता है।
package com.example {
class FooClass {
private val x = "foo"
private[example] val y = "bar"
}
class BarClass {
val f = new FooClass
f.x // <- Will not compile
f.y // <- Will compile
}
}
वस्तु निजी गुंजाइश
सबसे अधिक प्रतिबंधात्मक गुंजाइश "ऑब्जेक्ट-प्राइवेट" गुंजाइश है, जो केवल उस मूल्य को ऑब्जेक्ट के एक ही उदाहरण से एक्सेस करने की अनुमति देता है।
class FooClass {
private[this] val x = "foo"
def aFoo(otherFoo: FooClass) = {
otherFoo.x // <- This will not compile, accessing x outside the object instance
}
}
संरक्षित दायरा
संरक्षित क्षेत्र मूल्य को वर्तमान वर्ग के किसी भी उपवर्ग से एक्सेस करने की अनुमति देता है।
class FooClass {
protected val x = "foo"
}
class BarClass extends FooClass {
val y = x // It is a subclass instance, will compile
}
class ClassB {
val f = new FooClass
f.x // <- This will not compile
}
पैकेज संरक्षित क्षेत्र
पैकेज संरक्षित क्षेत्र एक विशिष्ट पैकेज में किसी भी उपवर्ग से केवल मूल्य तक पहुंचने की अनुमति देता है।
package com.example {
class FooClass {
protected[example] val x = "foo"
}
class ClassB extends FooClass {
val y = x // It's in the protected scope, will compile
}
}
package com {
class BarClass extends com.example.FooClass {
val y = x // <- Outside the protected scope, will not compile
}
}
Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow