aider/tests/fixtures/languages/scala/test.scala
2025-03-28 10:07:57 +03:00

61 lines
1.3 KiB
Scala

package com.example.test
// A trait definition
trait Greeter {
def greet(name: String): String
}
// A class definition with parameters
class FormalGreeter(prefix: String) extends Greeter {
// A method definition
override def greet(name: String): String = {
s"$prefix, $name!"
}
// A val definition
val defaultPrefix: String = "Hello"
// A var definition
var counter: Int = 0
}
// An object definition
object GreeterFactory {
// A function definition
def createGreeter(formal: Boolean): Greeter = {
if (formal) {
new FormalGreeter("Good day")
} else {
new CasualGreeter
}
}
// A type definition
type GreeterType = Greeter
}
// An enum definition
enum Greeting {
// Simple enum cases
case Hello, Hi, Hey
// Full enum case with parameters
case Custom(text: String)
}
// A class that uses generics
class Container[T](val value: T) {
def map[U](f: T => U): Container[U] = new Container(f(value))
}
// A case class
case class Person(name: String, age: Int) {
def introduce(): String = {
val greeter = GreeterFactory.createGreeter(age > 30)
greeter.greet(name) + s" I am $age years old."
}
}
class CasualGreeter extends Greeter {
override def greet(name: String): String = s"Hey, $name!"
}