Are there other languages ​​that have something like Swift extensions?

In Swift, an extension is a way of defining members for classes after the fact. Or you could say that this (based on the new) is an unusual way of compiling a function:

extension Double {
    var mm: Double { return self * 1_000.0 }
    func mm1() -> Double { return self * 1_000.0 }
}

func mm(a: Double) -> Double {
    return a * 1_000.0
}

print("One meter is \(1.mm) milimeters")
print("One meter is \(1.mm1()) milimeters")
print("One meter is \(mm(1)) milimeters")

I have never seen anything like it. Is there anything similar in other languages?

+4
source share
1 answer

This is called a monkey patch. There are several other languages ​​that support it, such as Ruby

0
source

All Articles