"Some " ++ R = A. "Some text" 3> R-6ren">
gpt4 book ai didi

带有绑定(bind)变量的字符串截断匹配表达式

转载 作者:行者123 更新时间:2023-12-02 06:30:29 25 4
gpt4 key购买 nike

以下 shell session 显示了我想了解的一些行为:

1> A = "Some text".
"Some text"
2> "Some " ++ R = A.
"Some text"
3> R.
"text"
4> B = "Some ".
"Some "
5> B ++ L = A.
* 1: illegal pattern

语句 2 和 5 在语法上肯定是相同的吗?我想使用这个习惯用法从字符串中提取一些文本,其中 B 正在从配置文件中读取。这可能吗?我应该使用什么语法来代替上面 5) 中显示的语法?

谢谢!

最佳答案

LHS++ RHS 模式在编译时扩展为 [ lhs0, lhs1, lhs2 | RHS] (其中 LHS =:= [lhs0, lhs1, lhs2],并且编译器拒绝对除文字字符串/列表之外的任何内容执行此操作。理论上它可以对变量执行此操作,但现在还不行。

我认为在你的情况下你需要这样做:

Prefix = read_from_config(),
TestString = "Some test string",
case lists:prefix(Prefix, TestString) of
true ->
%% remove prefix from target string
lists:nthtail(length(Prefix), TestString);
false ->
different_prefix
end.

关于带有绑定(bind)变量的字符串截断匹配表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3730766/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com