我正在尝试将一个Ruby程序转换为Crystal。
但是我卡在了缺少string.to_sym
的地方。
我有一个非常大的XML文件,它太大而无法放入内存。
因此,完全解析它是不可能的。幸运的是,我不需要所有信息,只需要其中一部分。所以我自己对其进行解析,放弃大部分的行。我使用 String::to_sym
来存储数据,就像这样:
:param_name1 => 1
:param_name2 => 11
:param_name1 => 2
:param_name2 => 22
:param_name1 => 3
:param_name2 => 33
在Crystal中应该使用什么?
内存是瓶颈。我不想多次存储param_name1
。
Signal :: INT.trap {...}
一样使用它。它还允许轻松地在编译时生成“解析”方法:https://github.com/manastech/crystal/blob/master/src/enum.cr#L323-L332 - Jonne Haß