তিনটি ফর্মই বৈধ, এবং ক্লাসের Bধরণ হিসাবে ধরা হয় এমন প্রভাব রয়েছে ।thisA
প্রথম দুটি রূপ ts
trait A { self: B => ... }
trait A { foo: B => ... }
self(যথাক্রমে foo) thisবৈশিষ্ট হিসাবে পরিচয় করিয়ে দিন A। এটি thisঅভ্যন্তরীণ শ্রেণীর থেকে রেফারেন্স অ্যাক্সেসের জন্য দরকারী । অর্থাৎ এরপরে আপনি কোনও শ্রেণীর কাছাকাছি থাকা বৈশিষ্ট্যের রেফারেন্সটি অ্যাক্সেস করার selfপরিবর্তে ব্যবহার করতে পারেন । উদাহরণ:A.thisthisA
class MyFrame extends JFrame { frame =>
getContentPane().add( new JButton( "Hide" ) {
addActionListener( new ActionListener {
def actionPerformed( e: ActionEvent ) {
// this.setVisible( false ) --> shadowed by JButton!
frame.setVisible( false )
}
})
})
}
তৃতীয় রূপ,
trait A { this: B => ... }
জন্য একটি উপকরণ পরিচয় করিয়ে দেয় না this; এটি কেবল স্ব-ধরণের সেট করে।