如果第一个条件失败,如何为变量赋值?

leo*_*eon 7 elixir

我在Ruby中使用了以下表达式:

env = opts.env || "staging"

如何在Elixir中书写?

编辑:

Elixir中的这个表达式不起作用:

case Repo.insert(changeset) do
  {:ok, opts} ->
    env = opts.env || "staging"
Run Code Online (Sandbox Code Playgroud)

错误:

** (KeyError) key :env not found in: %Myapp.App{__meta__: #Ecto.Schema.Metadata<:loaded>
Run Code Online (Sandbox Code Playgroud)

Paw*_*rok 14

完全相同的成语(假设"失败",你的意思是opts.env为零):

iex(1)> nil || "staging"
"staging"
iex(2)> "production" || "staging"
"production"
Run Code Online (Sandbox Code Playgroud)

作为Ruby,Elixir将零视为虚假价值.