Groovy: различия между версиями

Содержимое удалено Содержимое добавлено
Строка 992:
</source>
 
== Capture groupsКомпозиция ==
<source lang="groovy">
class Human {
int age
String name
String format(){
name+"@"+age
}
}
interface IHuman {
String fullInfo()
}
//Композиция в одном варианте
class Man implements IHuman {
Human comp
@Override
String fullInfo() {
return comp.format()
}
}
trait HumanTrait implements IHuman{
String name
int age
def String formatValues(){
name+"!!!"+age
}
}
//Композиция через Trait во втором варианте
class Woman implements HumanTrait {
 
@Override
String fullInfo() {
return formatValues()
}
}
def adam = new Man(comp: new Human(age: 32, name: 'adam'))
println(adam.fullInfo())
def eva = new Woman(name: 'Eva', age: 18)
println(eva.fullInfo())
 
</source>
 
== Non-matching Groups ==
== Replacement ==