1
爲什麼在以下代碼中Proc.num_stack_slots.(i) <- 0
的末尾有分號? 我以爲分號是OCaml中的分隔符。我們總是可以爲塊的最後一個表達式添加一個可選的分號嗎?OCAML在for循環中的分號單個表達式
for i = 0 to Proc.num_register_classes - 1 do
Proc.num_stack_slots.(i) <- 0;
done;
參見https://github.com/def-lkb/ocaml-tyr/blob/master/asmcomp/coloring.ml第273行爲完整的例子。
雖然(警告10:此表達式應該有類型單位),但您的最後一個示例不會在沒有警告的情況下進行編譯。預計序列中的每個表達式(除了最後一個)都是單位類型的。 – 2014-10-09 20:38:29
它編譯,它只是警告,說,你做錯了什麼。編譯器對此是真實的。因爲在語義上它是無稽之談。我只是向你演示語法功能。使用半列,在語法上,您可以分隔任何表達式,但如果它們沒有單位類型,那麼您將收到警告。 – ivg 2014-10-09 20:55:00
是的,我知道。我只是認爲你的答案值得一提。 – 2014-10-09 21:20:16