从文档中我了解=~
运算符如何匹配正则表达式,但我不明白这个运算符的一般用法.
例如,什么"foo" =~ "foo"
意思?它有什么不同"foo" == "foo"
?
假设我有 json 序列化对象,其中 count 属性存储为 value 。如果两个用户同时检索对象并在将其保存回来时用 + 1 更新计数,则计数值将被损坏。
使用 Redis 处理这种情况的正确方法是什么?我正在使用 .Net 的 Stackexchange 客户端。
我有一个使用 redis 进行数据存储的 phoenix Web 应用程序。我的配置文件夹包含以下文件:
配置文件
config :exredis,
url: System.get_env("REDIS_URL") || "redis://redis:6379/0",
Run Code Online (Sandbox Code Playgroud)
测试文件
config :exredis,
url: "redis://redis:6379/1"
Run Code Online (Sandbox Code Playgroud)
当我使用控制台从控制台运行测试时
mix test test/my_test.ex
Run Code Online (Sandbox Code Playgroud)
使用 redis 的生产实例而不是测试实例。
我可以通过运行让它工作
REDIS_URL="redis://redis:6379/1" mix test test/my_test.exs
Run Code Online (Sandbox Code Playgroud)
但是如何强制它自动使用测试配置?
我使用mix test test/my_test.exs
.
无论情况如何,是否可以对nilable字符串进行模式匹配?
我想要这样的东西:
def matcher(str) do
case String.downcase(str) do
"correct" -> true
_ -> false
end
end
Run Code Online (Sandbox Code Playgroud)
预期成绩:
matcher("") # false
matcher("correct") # true
matcher("CorrecT") # true
matcher(nil) # false.
Run Code Online (Sandbox Code Playgroud)
上面代码的问题是matcher(nil)
原因FunctionClauseError
.当然,我可以使用帮助方法来检查nil情况,但我想知道是否有更优雅的解决方案.