我的问题很简单,我想读一个文件中的第三行。这是我的代码,我认为它应该可行。
但它没有......有人可以为我解释原因吗?
open Printf
let filename = "T:\\Soton Uni\\ok.txt"
let () =
let ic = open_in filename in
let line_counter = 0 in
try
while true; do
line_counter = line_counter + 1;
let line = input_line ic in
if line_counter = 3 then
print_endline line;
done;
flush stdout;
close_in ic
with e ->
close_in_noerr ic;;
答案 0 :(得分:3)
OCaml中的变量永远不可变 - 它们可以引用可变数据,但变量指向的变量无法更改。
因此,命令式样式变量初始化和更新可以这样写:
let line_counter = ref 0 in
while true; do
line_counter := !line_counter + 1
if !line_counter = 3 then
print .....
done;
使用引用初始化变量:
let var_name = ref value;
要取消引用变量引用的值:
!var_name
更新变量所引用的值:
var_name := !var_name + value