问题标签 [string-literals]

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 投票
6 回答
8916 浏览

.net - 搜索字符串文字

在寻求本地化的过程中,我需要找到散落在我们源代码中的所有字符串文字。我正在寻找一种将其编写到修改后源存储库检查中的方法。(在某些人检查某些内容后,IE 有一个框设置来检查此统计信息)我可能会使用 NAnt 和 CruiseControl 或其他东西来处理 CVS 的管理(在我的情况下是 StarTeam :()但是你知道任何可编写脚本的吗(或命令行)实用程序来准确循环通过源代码查找字符串文字?我意识到我可以根据正则表达式进行简单的字符串查找,但想要更多的收益。(也许分析字符串或将其分类) 因为很多时候字符串可能不一定需要翻译。有什么想法吗?

0 投票
7 回答
9541 浏览

java - Java 和 .NET 字符串文字驻留在哪里?

最近一个关于.NET 中字符串文字的问题引起了我的注意。我知道字符串文字是实习的,因此具有相同值的不同字符串引用同一个对象。我也知道可以在运行时实习字符串:

显然,在运行时实习的字符串驻留在堆上,但我假设文字被放置在程序的数据段中(并在我对上述问题的回答中这么说)。但是我不记得在任何地方看到过这个。我认为是这种情况,因为我会这样做,并且ldstrIL 指令用于获取文字并且似乎没有发生分配的事实似乎支持了我。

长话短说,字符串字面量在哪里?它是在堆上、数据段上还是我没有想到的某个地方?


编辑:如果字符串文字确实驻留在堆上,它们是什么时候分配的?

0 投票
2 回答
5587 浏览

python - 将参数传递给 timeit.Timer() 函数的棘手 Python 字符串文字

我很难使用 Python 的 timeit.Timer(stmt, setup_stmt) 中的 setup 语句。我感谢任何帮助我摆脱这个棘手问题的帮助:

所以我的片段看起来像这样:

我不知道如何在不改变它们在 setup 语句中的含义的情况下转义变量 str1、str2 中的元字符:

我尝试了各种组合,但总是出现以下错误: SyntaxError: can't assign to literal
SyntaxError: EOL while sweeping single-quoted string
SyntaxError: invalid syntax

0 投票
9 回答
7165 浏览

language-agnostic - 硬编码的字符串是否可以接受?

类似于硬编码文字是否可以接受?,但我在这里特别考虑“魔术字符串”。

在一个大型项目中,我们有一个配置选项表,如下所示:

(数百个)。

通常的做法是调用通用函数来测试这样的选项:

(当然,同样的选项可能需要在系统代码中的很多地方进行检查。)

添加新选项时,我正在考虑添加一个函数来隐藏“魔术字符串”,如下所示:

然而,同事们认为我过分了,反对这样做,更喜欢硬编码,因为:

  • 这就是我们通常所做的
  • 它使调试代码时更容易看到发生了什么

麻烦的是,我能看出他们的意思!实际上,我们永远不会出于任何原因重命名选项,所以我能想到的函数的唯一优势是编译器会捕捉到任何像 fo_enabled() 这样的错字,但不会捕捉到“FO_ENABLED”。

你怎么看?我是否错过了任何其他优点/缺点?

0 投票
4 回答
3264 浏览

c - 这真的是缓冲区溢出吗?

我们使用的静态分析工具将类似于以下的 C 代码标记为严重缓冲区溢出。

该工具的错误信息是: Buffer Overflow (Array Index Out of Bounds): The array 'buf' size is 1. Array 'buf' may use the 0..64 index。

这是合法的吗?将字符数组分配给空字符串是否真的导致其长度减少到单个字节,就好像它被定义为一样char buf [] = "";

0 投票
7 回答
135010 浏览

objective-c - 如何将百分号添加到 NSString

我想在我的字符串中有一个数字后的百分号。像这样:75%。

我怎样才能做到这一点?我试过:

但这对我不起作用。

0 投票
9 回答
272442 浏览

c - 如何在 C / Objective-C 中将字符串文字拆分为多行?

我有一个很长的 sqlite 查询:

如何将它分成多行以使其更易于阅读?如果我执行以下操作:

我收到一个错误。

有没有办法在多行中编写查询?

0 投票
7 回答
53026 浏览

powershell - 如何在 PowerShell 字符串文字中编码 Unicode 字符代码?

如何在 PowerShell 字符串中对 Unicode 字符 U+0048 (H) 进行编码?

在 C# 中,我会这样做:"\u0048",但这似乎在 PowerShell 中不起作用。

0 投票
10 回答
408430 浏览

c++ - C++ 多行字符串文字

有没有办法在 C++ 中使用多行纯文本、常量文字,就像 Perl 一样?也许一些解析#include文件的技巧?我想不出一个,但是男孩,那会很好。我知道它会在 C++0x 中。

0 投票
3 回答
2115 浏览

python - 将两个字符串与 'is' 进行比较 - 未按预期执行

我正在尝试将两个字符串与is进行比较。一个字符串由函数返回,而另一个只是在比较中声明。测试对象身份,但根据这个页面,由于 Python 的内存优化,它也适用于两个相同的字符串。但是,以下方法不起作用:

输出:

我猜这是因为函数返回的字符串是与字符串文字不同的字符串“类型”。无论如何要获得一个返回字符串文字的函数吗?我知道我可以使用==,但我只是好奇。