En este post te voy a explicar que es un self type trait y como puedes usarlo en Scala.
¿Qué es un self-type trait en Scala?
Un self-type trait es una manera de declarar que un trait debe ser mezclado con otro trait y así se puedan acceder a sus miembros directamente. Para definir un miembro como self type necesitas especificarlo dentro del trait que tiene que acceder a los miembros de otro trait. La clase que herede del trait con self-type tendrá que heredar de los dos trait o de lo contrario tendrás un error de compilación.
trait User{ | |
protected var _username:String | |
} | |
trait ExtendedUserInfo { | |
//Specifying the self-type here | |
this: User => | |
protected var _email:String | |
protected var _address :String | |
//We are using _username attribute from User trait | |
def showUserInfo() ={ | |
println(s"User=${_username}, Email=${_email}, Address=${_address}") | |
} | |
} | |
class ExtendedUser(username:String, email:String, address:String) | |
//The subclass must inherit from ExtendedUserInfo and Info | |
extends ExtendedUserInfo with User { | |
override protected var _username: String = username | |
override protected var _email:String = email | |
override protected var _address: String = address | |
} | |
var currentUser = new ExtendedUser("admin", "admin@site.com", "address") | |
currentUser.showUserInfo() |
- NVL in SQL Server - 2023-11-01
- ¿Que es Cake Build? - 2023-02-22
- #How to fix error: MSB4019: The imported project «Microsoft.Data.Tools.Schema.SqlTasks.targets» was not found - 2023-02-20