Я новичок в Scala и пытаюсь понять классы и методы кейсов с помощью следующего упражнения. Буду признателен за любые материалы или помощь, так как я все еще привыкаю к синтаксису.
До сих пор я предпринял следующие шаги:
a) Создайте класс case с именем Point () состоит из двух целых чисел, x и y
b) Создайте методы leftOf () и выше () , чтобы выяснить, осталась ли данная точка от /над другой точкой
#part a
case class Point(x: Integer, y: Integer) {
#part b
def leftOf(point: Point): Boolean = {
if(x < point.x) return true}
def above(point: Point): Boolean = {
if(y > point.y) return true}
}
c) Создайте прямоугольник класса дел, построенный из двух точек: a topLeft и bottomRight
d) Создайте еще одинметод с именем содержит () , который принимает точку p и возвращает значение true, если точка внутри прямоугольника
e) Создает другой метод с именем overlaps () , который принимает одинпрямоугольник r и возвращает истину, если он перекрывается другим прямоугольником
#part c
case class Rectangle(topLeft: Point, bottomRight: Point) {
val topLeft: Point = leftOf.x && above.y
val bottomRight: Point = !(leftOf.x && above.y)
val bottomLeft: Point = topLeft.x && bottomRight.y
val topRight: Point = bottomRight.x && topLeft.y
#part d
def contains(p: Point): Boolean = {
if (p.topLeft.x < x < p.bottomRight.x) && (p.topLeft.y < y < p.bottomRight.y) return true}
#part e
def overlaps(r1: Rectangle, r2: Rectangle): Boolean = {
if (r2.topLeft(r1) || r2.topRight(r1) || r2.bottomLeft(r1) || r2.bottomRight(r1)) return true}