(first:step:last)
Syntax repräsentiert einen Range
Typ in Julia
Wenn Schrittteil weggelassen wird, wird standardmäßig 1
A Range
ist eine kompakte Ansicht einer Serie
Es wird also erwartet, dass ein Range
type und ein Vector
denselben Regeln folgen, wenn Sie beispielsweise einen konstanten Wert hinzufügen:
oder sogar das Hinzufügen von zwei Vektoren gibt Ihnen das gleiche Ergebnis, wenn Sie ihre Bereichsdarstellung wie folgt hinzufügen:
%Vor% Der Division-Operator in 4/1
gibt eine Float64
zurück. Obwohl der ursprüngliche Bereich eine Größe von 1 Int
step Range ist, wird nach dem Hinzufügen eines Gleitkommas zu beiden Seiten ein Float64
Range. Als solche wird eine Schrittgröße von 1,0 durch Konvertieren der impliziten Ganzzahlschrittgröße erzeugt (Gleitkommazahlen sind ungleichmäßig verteilt, so dass ein einheitliches Stepping ein wenig schwierig ist - manchmal gibt es Rundungsprobleme).
Sie können dies sehen, wenn Sie float
auf ein Intervall anwenden:
und diese Aktion ist erforderlich, bevor Sie Float64 4/1
( 4.0
) hinzufügen.
Wenn Sie einer Float-Zahl eine Ganzzahl hinzufügen, wird die Ganzzahl vor dem Addieren / Subtrahieren in einen Float-Wert umgewandelt:
%Vor%Siehe die Aktionsregeln :
%Vor% Sie können @which
den Funktionsaufrufen bis zum Ende folgen, um zu verstehen, was passiert (bis zu das folgende ):
und daher promotion-addition von Int64 und Float64.
Hinweis im Master ist die Anzeige des Intervalls etwas weniger verwirrend / mehrdeutig:
%Vor%Tags und Links julia-lang ijulia-notebook