字符串与二进制

  单引号字符串会被表示成整数值列表。

  ?c返回字符 c 的整数编码。下面这个例子用于解析字符列表表示法,该表示法用于表示一个任意的有符号的十进制数据。

defmodule Parse do
    def number([ ?- | tail ]) do
        _number_digits(tail, 0) * -1
    end

    def number([ ?- | tail ]) do
        _number_digits(tail, 0)
    end

    def number(str) do
        _number_digits(str, 0)
    end

    defp _number_digits([], value), do: value

    defp _number_digits([ digit | tail ], value) 
    when digit in '0123456789' do
        _number_digits(tail, value * 10 + digit - ?0)
    end

    defp _number_digits([ non_digit | _ ], _) do
        raise "Invalid digit '#{[non_digit]}'"
    end
end

 

  双引号字符串是二进制型

posted @ 2019-09-11 15:55  GodL  阅读(862)  评论(0编辑  收藏  举报