Elixir 1.0,Windows 7 x64上的Erlang 17.3。
我输入以下代码:
l = "[9,0]"
s = String.strip(l,"[")
我明白了:
**(FunctionClauseError)在String.lstrip / 2中没有匹配的函数子句 (elixir)lib / string.ex:527:String.lstrip(“[9,0]”,“[”) (elixir)lib / string.ex:564:String.strip / 2
我错过了什么?
我也尝试过s = String.strip(l,",")
并犯了同样的错误。还尝试了s = String.strip(l,'[')
同样的错误。
我错过了什么?
答案 0 :(得分:4)
您应该使用单个char作为第二个参数,而不是字符串。
iex(42)> l = "[9,0]"
"[9,0]"
iex(43)> s = String.strip(l, ?[)
"9,0]"
iex(44)> s = String.strip(l, ?])
"[9,0"
在此http://elixir-lang.org/docs/stable/elixir/String.html#strip/2
的字符串文档中查看更多内容答案 1 :(得分:3)
您想将字符传递给String.strip/2
:
s = String.strip(l, ?[)
正如Shashidhar在评论中指出的那样,String.strip/2
已从Elixir文档中删除,将来可能会完全删除。建议的替换是String.trim/2,它将String作为其第二个参数:
s = String.trim(l, "[")