可以说我想对文本进行模式匹配。具体来说,我想对第一个字母进行图案匹配。

例如,如何创建与“about”和“analog”而不是“beta”匹配的模式?

我已经试过了:

defmodule MatchStick do
    def doMatch([head | tail]) when head == "a" do 1 end
    def doMatch([head | tail]) do 0 end
end

res = MatchStick.doMatch("abcd");

我也尝试过字符列表:
defmodule MatchStick do
    def doMatch([head | tail]) when head == 'a' do 1 end
    def doMatch([head | tail]) do 0 end
end

res = MatchStick.doMatch('abcd');

两者都不起作用。匹配文字的正确方法是什么?

最佳答案

defmodule MatchStick do
  def doMatch("a" <> rest) do 1 end
  def doMatch(_) do 0 end
end

您需要使用字符串连接运算符here

例:
iex> "he" <> rest = "hello"
"hello"
iex> rest
"llo"

关于elixir - 如何在文本上进行模式匹配?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25896762/

10-13 04:16
查看更多