当前位置:  开发笔记 > 编程语言 > 正文

在elixir sigil中逃脱闭括号

如何解决《在elixirsigil中逃脱闭括号》经验,为你挑选了1个好方法。

我想要一个自定义的sigil,这样我每行可以有一个元素.

这是我的代码

def sigil_l(text,[]), do: String.split(text,"\n")

这适用于

~l(Clash of Titans
   The day after Tomorrow
   The Transporter
 )

这失败了

~l(The man from Earth (2007)
   Gone Girl (2014)
   )

请注意上面的括号

这是错误消息

"{" starting at line 38 is missing terminator "}". Unexpected token: )
(elixir) lib/kernel/parallel_compiler.ex:97: anonymous fn/4 in Kernel.ParallelCompiler.spawn_compilers/8

预期的结果是

["The man from Earth (2007)",
"Gone Girl (2014)"]

需要更改哪些代码.我是否还需要在输入中添加任何字符并处理sigil defination?

更新

@AbM提供的解决方案是正确的.我在elixir版本1.0.4上,所以它不起作用.它适用于1.1.x.

~l(The man from Earth (2007\)
   Gone Girl (2014\)
   )

AbM.. 5

您应该使用以下符号来转义右括号\):

~l(The man from Earth (2007\)
   Gone Girl (2014\)
)

这是我的脚本和iex输出:

defmodule SigilL do

  def sigil_l(text,[]), do: String.split(text,"\n")

end

在此输入图像描述



1> AbM..:

您应该使用以下符号来转义右括号\):

~l(The man from Earth (2007\)
   Gone Girl (2014\)
)

这是我的脚本和iex输出:

defmodule SigilL do

  def sigil_l(text,[]), do: String.split(text,"\n")

end

在此输入图像描述

推荐阅读
农大军乐团_697
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有