gpt4 book ai didi

global-variables - Ocaml 中的全局变量

转载 作者:行者123 更新时间:2023-12-03 23:38:07 25 4
gpt4 key购买 nike

我正在寻找一种在 ocaml 中定义全局变量的方法,以便我可以在程序中更改它们的值。我想要用户的全局变量是:

type state = {connected : bool ; currentUser : string};;
let currentstate = {connected = false ; currentUser = ""};;

如何更改 connected 和 currentUser 的值并将新值保存在整个程序的同一变量 currentstae 中?

最佳答案

要么声明一个可变记录类型:

type state = 
{ mutable connected : bool; mutable currentUser : string };;

或者声明一个全局引用
let currentstateref = ref { connected = false; currentUser = "" };;

(然后使用 !currentstateref.connected 访问它...)

两者都做不同的事情。可变字段可以改变(例如 state.connected <- true; ...但包含它们的记录保持相同的值)。引用可以更新(它们“指向”一些更新的值)。

你需要花几个小时来阅读更多你的 Ocaml 书(或它的 reference manual)。我们没有时间教你其中的大部分内容。

一个引用真的很像
type 'a ref = { mutable contents: 'a };;

但是使用语法糖(即中缀函数)来取消引用( ! )和更新( := )

关于global-variables - Ocaml 中的全局变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20504958/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com