【问题标题】:Which quotes does a programmer need?程序员需要哪些引号?
【发布时间】:2010-03-17 23:30:49
【问题描述】:

我的键盘只有普通引号,没有智能引号。

我发现我需要cgi development 中的正常值和AWK/SED 中的落后值。

我应该在什么时候使用智能引号,正常引号和后引号有什么规则吗?

显然,我需要编辑我的键盘布局以获取智能引号。

【问题讨论】:

  • awk 和 sed 需要智能引号?这看起来非常非常奇怪。你到底是什么意思?
  • 查看 AWK/SED 帖子,他们正在谈论反引号。你在说什么?
  • 如果您谈论的是开/关引号 -> “ ” - 那么我不知道有任何语言需要这些。
  • 什么是“智能引号”?请举个例子!
  • @DJ:反引号 - -。我不知道反引号和智能引号之间有区别。那么程序员需要哪些引号呢?反引号,普通引号......不是智能引号?

标签: quotes


【解决方案1】:

如果您通过智能引号表示`,那么这实际上称为“反引号”。智能引号是当您键入 ' 和 " 时,但会根据上下文自动获取 ' and ' 或 " and '。我不确定您将如何在 awk 或 sed 中使用智能引号。

在 shell 中,反引号,例如 `command`,用于计算命令并将其中的命令结果替换为正在计算的 shell 表达式;它可用于计算和参数到另一个命令,或设置变量。为了减少歧义,您可以改用$(command),这样可以更轻松地制定许多引用规则。

在 shell 中,'" 也是不同的。 " 用于需要变量替换和转义序列的字符串。 ' 表示仅包含引号内的字符的字符串,没有变量插值或转义序列。

所以,例如:

$ name=world
$ echo "Hello, $name"
Hello, world
$ echo 'Hello, $name'
Hello, $name
$ echo "Testing \\ escapes"
Testing \ escapes
$ echo 'Testing \\ escapes'
Testing \\ escapes
$ echo `ls`
example-file another-example
$ echo 'ls'
ls
$ echo "ls"
ls

Perl 和 Ruby 等其他脚本语言也有类似的规则,但可能会有细微差别。

【讨论】:

  • 这些也是有趣的例子: echo rm File* - - - 和 - - - echo rm File* 后一个删除了文件,而前一个显示了要删除的内容。
【解决方案2】:

智能引号用于漂亮的排版。它们与编程无关。

编辑:您确实需要的引号。

  • 双引号:" " 它们用于多种语言中的文字字符串
  • 单引号:' ' 在某些语言(如 C)中用于文字字符,在语言(如 javascript 和 php)中用于字符串。 (例如,如果你需要打印一个字符串“foo”,你可以使用'"foo"'
  • 反引号:在 UNIX shell 中,表示将一个命令的标准输出替换为定义另一个命令的文本行。例如 echo ``date\ 可能会执行 echo Sat Mar 1 09:43:00 GMT 2008 并打印 Sat Mar 1 09:43:00 GMT 2008。

【讨论】:

  • 我认为这个答案是最好的(不,我已经知道这些东西了)。就我个人而言,当我看到巧妙的引语时,即使是在印刷品中,它们也会跳出来并因它们的不协调而惹恼我,我认为它们看起来一点也不漂亮!
【解决方案3】:

在 shell/awk/perl 编程以及在 TeX 中处理文档时,经常使用反引号。除此之外,您可能不会经常使用它们。

【讨论】:

    【解决方案4】:

    聪明的引号是魔鬼。

    【讨论】:

      【解决方案5】:

      据我所知,没有一种语言需要(甚至必须支持)“智能引号”,除非您将反引号字符 ` 称为智能引号。如果是这样,许多语言都支持反引号。例如,bash 和 ruby​​ 都使用反引号进行命令替换。

      回答这个问题我应该使用智能引号和普通引号时有什么规则吗?,是的,有一个规则(再次,假设你说“智能引号”时是指反引号)。在大多数语言中,不同类型的引用会给你不同类型的行为。规则是,了解该特定语言的行为是什么,然后选择给出该行为的引用。

      【讨论】:

      • Powershell 至少将智能引号视为常规引号。所以它确实以这种方式支持他们。不过,只有我知道的语言可以。
      【解决方案6】:

      智能引号是文字处理器功能。当您键入“quote”时,它会自动替换为“quote”或“quote”。我认为你的命名有误。

      【讨论】:

        【解决方案7】:

        仅供参考,“智能引号”的另一个术语(我以前从未听说过),是重音。

        我认为之前的答案中已经很清楚地列出了规则。

        【讨论】:

          【解决方案8】:

          $ /usr/games/fortune

          【讨论】:

            猜你喜欢
            • 2010-09-14
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2015-08-05
            • 2021-08-01
            • 1970-01-01
            • 1970-01-01
            • 2011-05-03
            相关资源
            最近更新 更多