小编Dar*_*key的帖子

在 F# 中执行 CultureInvariant Double.parse 的更优雅方法

我有一个字符串格式的数字数组(例如 [|"1"; "2"; "3" ...|]) 并希望将它们转换为双精度数,但是我想以 CultureInvariant 的方式进行。我当然可以这样做:

[|"1"; "2"|] |> Array.map (fun (a) -> Double.Parse(a, CultureInfo.InvariantCulture))
Run Code Online (Sandbox Code Playgroud)

但是,有没有办法做到这一点:

[|"1"; "2"|] |> Array.map Double.Parse
Run Code Online (Sandbox Code Playgroud)

,但是使用 CultureInfo.InvariantCulture 吗?这段代码看起来更具可读性。换句话说,是否有任何方法可以将 CultureInfo.InvariantCulture 在流程中传递给 Double.parse,或者为所有程序/脚本全局设置 CultureInfo.InvariantCulture。

f# locale

4
推荐指数
1
解决办法
591
查看次数

Erlang:跳过二进制的第一个字节

我有带有标头(不确定长度的\FF字节序列)和以下结构体的二进制数据包,我需要解析。示例数据包: <<255,255,255,255,255,6,8,0,0,1>><<255,255,255,255,255,255,255,255,255,10,15,0,0,1>>

解析它的最有效方法是什么?我找到了以下解决方案:

1) 将数据包转换为列表

2)跳过标题,享受以下乐趣:

skip_elem([E | Rest], Condition) ->
  case Condition(E) of
    true -> [E | Rest];
    false -> skip_elem(Rest, Condition)
  end;

skip_elem([], _Cond) -> [].
Run Code Online (Sandbox Code Playgroud)

3) 将列表转换为二进制并使用二进制匹配特征解析其主体

但看起来方法复杂且无效,有没有更有效的解决方案?

erlang

1
推荐指数
1
解决办法
231
查看次数

标签 统计

erlang ×1

f# ×1

locale ×1