Ja, es ist wie void
. Die Idee ist, dass Blöcke einen Wert (i32
, i64
, f32
, f64
für den Moment) zurückgeben können, oder gar keinen Wert. Die Typen sind unter language types aufgeführt und block type beschränkt die zulässigen Typen. Dies bedeutet, dass Anweisungen Werte konsumieren können, die ein Block auf den Ausführungsstapel drückt, sodass ein Block einer Funktion in diesem Sinne ähnelt. Sie könnten einen Block nicht möchten, um einen Wert auf den Stapel zu schieben, so dass es void
könnte daher nützlich sein. Oder der Compiler könnte einfach nicht intelligent genug sein, um diese Eigenschaft von Blöcken zu verwenden, und stattdessen verwendet er in einigen Fällen Locals.
Schließlich wird multi-value unterstützt, die sowohl Funktionen als auch Blöcke ermöglichen, mehrere Werte auf den Stapel zu schieben.
Das räumt auf. Nochmals vielen Dank für die tolle Antwort. Multi-Value-Support ist ziemlich nett und ich bin wirklich beeindruckt von den Fortschritten. – Asperger