问题标签 [sigils]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
133 浏览

variables - perl 6变量同名不同的符号不一致的行为

当使用相同字母名称但不同符号的变量时,似乎存在一些不一致的行为:

我不确定为什么@a不影响$a,而@b影响$b。有人可以解释一下吗?

谢谢 !!!

lisprog

0 投票
1 回答
159 浏览

perl - Perl 中的 Sigils 有什么好处?

我理解印记的规则。我可以从列表中制作散列,并与其中的平庸者一起传递参考。我不明白的是sigils 在 Perl 中提供的好处。

我听说的一些原因是:

  • 字符串插值
    • Ruby 具有“#{myVar}”语法,它解决了几乎所有这些问题,包括拥有完整的表达式而不必诉诸“@{[$count + 1]}”语法技巧。
  • 可读性
    • IDE。任何值得在盐中发挥作用的文本编辑器都具有语法突出显示。
  • 允许变量 subNamespacing
    • 允许我将 $foo 和 @foo 声明为两个不同的变量只会导致未来的毁灭。

编程语言中一个非常有用的特性是一致性。我的好奇心驱使我问,如果我将一个列表声明为“@foos”,并将一个计数器声明为“$count”,那么需要通过说“$foos[$count]”来访问元素有什么意义?哦!但是如果我将元素读入列表上下文中,我可以使用“@”;所以说“@foos[$idx1, $idx2]”现在是有道理的!通过查看印记,我可以看出我将读取一个数组而不是单个标量!

  • 我仍然可以通过说“foos[count]”来判断我正在阅读单个元素
  • 我仍然可以通过说“foos [idx1,idx2]”来判断我正在阅读多个元素。
  • 我仍然可以通过说“foos{key}”来判断我正在读取单个值
  • 我仍然可以通过说“foos{key1, key2}”来判断我正在读取多个值

这种模式几乎适用于我能想到的任何情况。无论使用哪个印记,或者没有任何印记,所做的事情的含义都很清楚。唯一的区别是我必须跟踪上下文并确保使符号保持一致

0 投票
1 回答
312 浏览

elixir - 向后移植 Sigils 并使其与变量一起使用

所以我刚开始使用 Elixir 并看到当前master添加了~U[2015-01-13 13:00:07Z]对创建/解析 UTC 日期的印记的支持。

代码如下:

在我的代码中,我试图将它与变量一起使用timestamp

timestamp被解释为原样,而不是前一场比赛。

有没有办法让它工作?我需要引用/取消引用某些内容吗?除了DateTime.from_iso8601/1直接使用。

0 投票
2 回答
250 浏览

raku - 将非标量分配给标量有什么好处?

我有时会看到(对我而言)在变量前面使用错误符号的代码

这一切都完全按预期工作

Q1:使用标量容器而不是仅仅使用“正确”容器有什么好处?

我知道 Perl 只让集合存储标量,需要通过数组引用来完成多维数组之类的事情,[...]分别{...}是数组和哈希引用文字。

为了扩展和澄清我在这里的意思,基本上有两种定义事物的方法,按值和按引用:

这种疯狂背后的原因是 Perl 集合只接受标量,而引用就是这样。使用引用本质上是一种启用多维数组的方法。

TL;DR,这种区别在 Perl 中是有意义的,因为它们服务于两个截然不同的目的。

Q2:我们是在再次处理类似 Perl 5 的引用文字,还是有别的东西在起作用?

0 投票
1 回答
132 浏览

regex - Sigil 编辑器:正则表达式字符串在文本中查找(连字符)字符,但不是 html 属性

我的问题:我使用Sigil编辑电子书的 xhtml 文件。

从 InDesign 导出到 ePub 时,我勾选选项以删除强制换行符。此操作删除了所有-由 InDesign 自动生成的连字符,但在我的分词微调期间手动添加的字符仍保留在文本中。Sigil 搜索的当前能力:通过-解析所有内容进行搜索,包括 css 类名。

TODO:如何构造正则表达式查询,该查询-在文本中找到,但不在 html 代码中?谢谢!


我已经尝试过的https://www.mobileread.com/forums/showpost.php?p=4099971&postcount=169::

这是一个简单的示例,可以在标签本身之外查找单词“title” ,这是我能想到的最简单的正则表达式搜索。它假定 body 标记中没有裸文本,并且 xhtml 格式正确。

我试过了,它似乎工作。可能有更好更详尽的正则表达式,甚至可以处理损坏的 xhtml。

代码:

这基本上是说搜索“标题”,但在找到下一个开始标签字符“<”之前先确保没有结束标签字符“>”。

可能有一些可以使用反向逻辑的版本。并且有一些方法可以使用正则表达式来查找忽略任何中间标签的两个字符串。

试试看。您可以轻松添加保存的搜索来做到这一点。但同样它不会处理跨越元素(树中的节点)的文本的查找和替换。这是困难的部分,除非您将匹配的子字符串与替换子字符串进行一对一的匹配,而替换子字符串通常不需要这种情况。

当然,如果您在字符串中使用&lt;and&gt;来显示“标签”或代码片段,则会错误地找到这些内容,因此需要在替换之前检查每个查找。

0 投票
1 回答
95 浏览

elixir - 如何在 Phoenix 渲染功能中用 ~H 替换已弃用的 ~E sigil

背景

在我学习 Phoenix LiveView 的过程中,我发现自己使用了一个使用已弃用符号的渲染函数:

eex现在,我知道在 Elixir中使用代码是安全的。但是编译器说我应该用~H. 所以我的第一次尝试如下:

哪个不起作用并且无法在菜单中正确显示文本:

在此处输入图像描述

问题

我究竟做错了什么?