Wie kann man in der Programmiersprache Julia ein Type definieren der ganzzahlig ist und nur in einem bestimmten Intervall Werte annimmt?
Ada Quelltext:
type Alter is new Integer range 0 … 99;
1 Antwort
In Julia kann man einen ganzzahligen Typdefinieren, der nur in einem bestimmten Intervall Werte annimmt. Der folgende Code zeigt ein Beispiel:
using IntervalSets
struct MyInteger{T<:Integer} <: Integer
value::T
end
MyInterval = IntervalSet(1:10)
function MyInteger{T<:Integer}(x::T)
x ∈ MyInterval || throw(ArgumentError("Wert liegt nicht im definierten Intervall."))
new{T}(x)
end
using IntervalSets
struct MyInteger{T<:Integer} <: Integer
value::T
end
MyInterval = IntervalSet(1:10)
function MyInteger{T<:Integer}(x::T)
x ∈ MyInterval || throw(ArgumentError("Wert liegt nicht im definierten Intervall."))
new{T}(x)
end
Hier wird der Typ "MyInteger" definiert, der einen Wert vom Typ T enthält, der ein Untertyp von "Integer" ist. Ein Interval-Set namens "MyInterval" wird definiert, das die Werte von 1 bis 10 enthält.
Im Konstruktor von "MyInteger" wird überprüft, ob der übergebene Wert im definierten Intervall liegt. Wenn der Wert im Intervall liegt, wird eine neue Instanz von "MyInteger" mit dem übergebenen Wert erstellt. Andernfalls wird eine Fehlermeldung ausgegeben.