gpt4 book ai didi

elixir - 如何对 "any string"进行模式匹配?

转载 作者:行者123 更新时间:2023-12-01 10:36:27 26 4
gpt4 key购买 nike

在 Elixir 中,我想对结构中字段的存在进行模式匹配——要么字段不为 nil,要么更好,它是一个字符串。

我知道模式如何匹配字段为 nil 的结构。例如:

def run(%Query{expression: nil})

如何匹配给定字段为任意字符串的结构体?

最佳答案

你可以匹配:

Kernel.match?("" <> rest , "")
#true

def run(%Query{expression: "" <> expression})

或者你可以为此使用守卫:

Kernel.match?(foo when is_binary(foo), nil)
#false

def run(%Query{expression: expression}) when is_binary(expression)

http://elixir-lang.org/getting-started/case-cond-and-if.html#expressions-in-guard-clauses 提供了有效的保护子句列表。

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

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