2

以前の開発者は、このWeb サイトのソース コードを使用して URL 短縮サービスを作成しました。私は基本的に、このコードを Ruby に変換する任務を負っています。

function getIDFromShortenedURL1 ($string, $base = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ')
{
    $length = strlen($base);
    $size = strlen($string) - 1;
    $string = str_split($string);

    $out = strpos($base, array_pop($string));

    foreach($string as $i => $char)
    {
        $out += strpos($base, $char) * pow($length, $size - $i);
    }
    return $out;
}

私はルビーが初めてで、どんな助けも大歓迎です:)

4

1 に答える 1

3

これは、基本的に PHP コードの直接移植に相当するものです。

def getIDFromShortenedURL1(string, base = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ')
  length = base.length         # $length = strlen($base);
  size   = string.length - 1   # $size   = strlen($string) - 1;
  string = string.split ''     # $string = str_split($string);

  out = base.index string.pop  # $out = strpos($base, array_pop($string));

  string.each_with_index do |char, i|  # foreach($string as $i => $char);
    # $out += strpos($base, $char) * pow($length, $size - $i);
    out << base.index(char) * (length ** (size - i))
  end
  out # return $out;
end

コードと非常に基本的なテストの結果 (機能が同等であることを確認するため) は、https://gist.github.com/941152にあります。

于 2011-04-25T20:30:18.397 に答える