如何为ruby 1.9.1实现string.codepoints

时间:2019-02-12 06:53:33

标签: ruby

出于向后兼容的原因,我想实现String#codepoints的ruby方法(在1.9.1中引入)。

我在想

def codepoints(str)
    str.split('').map(&:ord)
end

但是我担心#ord在红宝石的早期版本中无法正常工作。

1 个答案:

答案 0 :(得分:1)

ord是Ruby 1.9.1中引入的,请参见APIDock

对于ASCII字符串,您可以使用#bytes,对于Unicode it won't behave in the same way as #codepoints

在Ruby 1.8.x中,您可以使用?来获取char数值,我不知道1.9.0应该使用什么。

不再支持2.3以上的红宝石,请考虑升级。