gpt4 book ai didi

elixir - 使用方括号调用模块或模块函数

转载 作者:行者123 更新时间:2023-12-02 00:32:36 26 4
gpt4 key购买 nike

在 Ruby 中,可以使用 [] 调用类或模块,如果您这样定义它:

class Pair
def self.[](pair_name)
...return pair by name
end
end

Elixir 中是否有任何等价物允许您通过方括号(大括号/圆括号)调用模块函数?

我想要一个方法的简短别名以避免这样的调用:Pair.from_name(pair_name) 并执行类似这样的操作 Pair.[pair_name]

最佳答案

elixir AFAIK 目前没有这样的功能。

但是,如果您想使用更短的函数名称,为什么不使用模式匹配、守卫和import:

defmodule Pair do
defstruct name: "Default"

def pair(name) when is_bitstring(name), do: %Pair{name: name}
def pair(id) when is_integer(id), do: %Pair{name: "#{id}"}
end

iex(1)> import Pair, only: [pair: 1]
Pair
iex(2)> pair("what")
%Pair{name: "what"}
iex(3)> pair(3)
%Pair{name: "3"}

关于elixir - 使用方括号调用模块或模块函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51274932/

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