In älteren Version der Bibliothek Kern der to_sec_string
Funktion hatte die folgende Schnittstelle:
(** [to_sec_string t] Same as to_string, but without milliseconds *)
val to_sec_string : t -> string
An einem gewissen Punkt der Zeit, die sie seine Oberfläche verändert und nun ist es
(** Same as [to_string_abs], but without milliseconds *)
val to_sec_string : t -> zone:Zone.t -> string
Das bedeutet, dass jetzt Dies ist eine Funktion mit zwei Parametern. Der erste ist immer noch ein Wert vom Typ Time.t
, aber der zweite ist ein labeled Argument vom Typ Zone.t
, das eine Zeitzone angibt. Ein beschrifteter Parameter kann im Gegensatz zu einem regulären Positionsparameter an einer Funktion an einer beliebigen Position übergeben werden, sodass Sie sich die Reihenfolge der Argumente nicht merken müssen. Eine übliche Invokation wird wie folgt aussehen:
let s = Time.to_sec_string time ~zone:Time.Zone.local
wo Time.Zone.local
ist eine Zeitzone Objekt, das repräsentiert Ihre lokale Zeitzone. Da es ein markierter Parameter ist, können Sie auch die Funktion wie folgt aufrufen:
let s = Time.to_sec_string ~zone:Time.Zone.local time
Da hier beide Parameter verschiedene Typen haben, können OCaml sogar erraten, wer wer ist das Etikett ohne Verwendung, so können Sie Rückgriff auf Positionsargumente:
let s = Time.to_sec_string time Time.Zone.local
Schließlich haben die meisten Arten in Kernen dort Schnittstelle to_string
Funktion. Also eine einfachere Lösung wäre, es anstelle von to_sec_string
zu verwenden. Es hat ein bisschen anders und mehr verbirgiges Format, obwohl:
Time.to_string time^" -- "^message
Wie ich verstehe, ist das Problem, dass Tmie.to_sec_string Zeitfunktion keine Zeichenfolge zurückgibt. –
Es scheint, dass die Funktion aktualisiert wird und jetzt ein zusätzliches Argument von 'zone: Core.Zone.t' hat. Sie müssen einige Zeitzone Daten "z" wie "TIme.to_sec_string ~ Zone: z Zeit" – camlspotter