Wie kann man in der Programmiersprache Julia ein Type definieren der ganzzahlig ist und nur in einem bestimmten Intervall Werte annimmt?


02.03.2023, 16:38

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.

Woher ich das weiß:Studium / Ausbildung – Hochschulabschluss in Informatik (MSc)