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

Содержимое удалено Содержимое добавлено
Строка 816:
# equivalent to calling if (text ==~ /match/)
 
== The operatorsTraits ==
это интерфейс и его стандартная реализация и состояние в одном месте.
<source lang="groovy">
trait Marks {
void DisplayMarks() {
println("Display Marks");
}
}
</source>
<source lang="groovy">
trait UserTrait {
//должна быть обязательная реализация этого метода в наследниках
abstract String name()
//стандартная реализация метода
String showName() {
return "Hello, ${name()}!"
}
}
class Employee implements UserTrait {
String name() {
return 'Bob'
}
}
def emp = new Employee() as UserTrait
println emp.name()
println emp.showName()
</source>
Множественное наследование:
<source lang="groovy">
trait Marks {
void DisplayMarks() {
println("Marks1");
}
}
 
trait Total {
void DisplayTotal() {
println("Total");
}
}
//множественное наследование
class Student implements Marks,Total {
int StudentID
}
Student st = new Student();
st.StudentID = 1;
println(st.DisplayMarks());
println(st.DisplayTotal());
</source>
Расширение:
<source lang="groovy">
class Example {
static void main(String[] args) {
Student st = new Student();
st.StudentID = 1;
println(st.DisplayMarks());
}
}
 
trait Marks {
void DisplayMarks() {
println("Marks1");
}
}
 
trait Total extends Marks {
void DisplayMarks() {
println("Total");
}
}
 
class Student implements Total {
int StudentID
}
</source>
Переопределение default методов:
<source lang="groovy">
trait SpeakingTrait {
String speak() {
return "Speaking!!"
}
}
 
class Dog implements SpeakingTrait {
String speak() {
return "Bow Bow!!"
}
}
 
</source>
This в Trait
<source lang="groovy">
trait UserTrait {
def self() {
return this
}
}
</source>
Свойства:
<source lang="groovy">
trait UserTrait implements Human {
String email
String address
}
</source>
 
== Capture groups ==
== Non-matching Groups ==