gpt4 book ai didi

string - OCaml:将字符串转换为('a,单位,字符串)格式?

转载 作者:行者123 更新时间:2023-12-02 06:50:53 24 4
gpt4 key购买 nike

我需要从字符串转换为格式。我得到了一系列格式,我想访问每种格式并对其使用 sprintf。

例如

let errors = [| "format 1"; "format 2"; ... ; "format 512" |]
let code_to_string (error_code : int) :(string) = sprintf errors.(error_code)

我看到了this question 。根据最佳答案,不同的字符串会产生不同类型的格式,这就是为什么:

let errors = [| format_of_string "format 1"; 
format_of_string "format 2";
...
format_of_string "format 512" |]

不起作用。

有没有办法将所有格式存储为字符串,然后在需要时进行转换?或者我是否必须为每个字符串编写一个函数?例如

let error1 = sprintf "format 1" args
let error2 = sprintf "format 1" args
...
let error512 = sprintf "format 512" args

最佳答案

您可以使用 Scanf.format_from_stringstring 类型的任意静态未知值转换为 format6 类型的值。但是,当然,您需要知道格式的类型(并且它们都应该统一)。

这是一个激励人心的例子:

# let fmt = Scanf.format_from_string "Hello: %d" "%d";;
val fmt : (int -> '_a, '_b, '_c, '_d, '_d, '_a) format6 = <abstr>
# Printf.printf fmt 12;;
Hello: 12- : unit = ()

附注和here是此功能的更极端的使用。

关于string - OCaml:将字符串转换为('a,单位,字符串)格式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31998408/

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