问题标签 [gstring]

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 回答
2923 浏览

string - Groovy:${} 内变量的嵌套求值

我有一种方法可以在 Groovy 中对“$-Strings”进行嵌套评估,例如

结果应该是:

我解决这个问题的尝试要么没有给出正确的结果(例如,只是 obj.street},要么根本不会编译。到目前为止,我似乎还没有理解整个概念。但是,看到这个:http:// groovy.codehaus.org/Strings+and+GString我相信这应该是可能的。

0 投票
3 回答
211118 浏览

string - 使用 Groovy 进行字符串连接

在 Groovy 中连接字符串的最佳(惯用)方法是什么?

选项1:

选项 2:

我在旧的 Groovy 网站上就这个话题提出了一个有趣的观点:你可以做的事情,但最好不要做。

与在 Java 中一样,您可以使用“+”符号连接字符串。但是Java只需要“+”表达式的两项中的一项是字符串,无论它是在第一个还是在最后一个。Java 将在“+”表达式的非字符串对象中使用 toString() 方法。但是在 Groovy 中,您应该确保“+”表达式的第一项以正确的方式实现 plus() 方法,因为 Groovy 会搜索并使用它。在 Groovy GDK 中,只有 Number 和 String/StringBuffer/Character 类实现了 plus() 方法来连接字符串。为避免意外,请始终使用 GStrings。

0 投票
1 回答
509 浏览

c - malloc返回的指针可以改变吗

在为个人项目编程时,我发现当我将指针传递给一个函数时,它的值无法更改。例子:

在查看调试器后,我观察到当缓冲区运行的内存分配时,buf=0x80b720 和 otherfunc() 返回 0x80b750。虽然缓冲区的值没有改变。所以我想问一下是否有人知道为什么会发生这种情况以及这是否是 malloc() 的一般特征。换句话说,如果您将 malloc() 调用返回的指针传递给函数,那么您是否能够在函数体内部或外部更改此值?

0 投票
3 回答
2287 浏览

c - g_slice_alloc 中的段错误

我正在使用以下几行调用一个函数:

我在 g_string_sized_new 的行中遇到了段错误。来自 gdb 的回溯显示:

我曾尝试导出 G_SLICE=always-malloc,以便使用 malloc 代替 glib 自己的分配器。但是问题仍然相同。我仍然在 g_slice_alloc 中遇到段错误。我也从多个线程调用这个函数'call_system_command'。这会是个问题吗?

该函数是 cron 每 15 分钟调用一次的插件的一部分。段错误不是每次执行插件时都会发生,而是每 3-4 天发生一次。

有关进一步调试的任何指示都会有所帮助。

提前致谢。

0 投票
2 回答
3464 浏览

groovy - 将 GStrings 存储在变量中并在运行时评估

我在地图中存储了一些 GString,并试图在运行时将它们评估为:

上面的代码给出了错误,但下面的代码运行:

正如我们所看到的区别,在第一个脚本中,placeholderStrings 在绑定之前声明,而在第二个脚本中,它是在绑定之后声明的。我想做类似于第一种情况的事情,因为在我的应用程序中,我需要在运行时根据客户端请求评估占位符字符串。

  • 当请求到来时,我需要使用placeholderStrings.get(keyFromParams).
  • 用上面获得的字符串中的绑定替换占位符。

现在的问题是,当我调用 时placeholderStrings.get(keyFromParams),它会尝试替换字符串中的占位符并引发异常。

为了解决这个问题,我尝试将 placeholderString 值存储为单引号字符串,例如:

但是现在我无法将上面映射中的值转换为 GString 以便可以替换占位符。所以有人可以建议可以做什么吗?

0 投票
1 回答
692 浏览

templates - 按名称访问模板中的属性

给出以下代码:

时髦的:

测试模板:

有没有办法通过 test.template 中的 keyName 访问 val1?

这个:

不起作用(没有这样的属性:类的 key1:groovy.lang.Binding)。有任何想法吗?也许保存属性的地图名称不同?

我知道我可以写:

但我需要使用变量 keyName 访问属性 key1。

0 投票
1 回答
411 浏览

java - Groovy GString 变量双重替换

我有一个 Groovy 脚本。在 Java 中通过绑定我提供:

我通过 GroovyShell 运行脚本,然后:

将打印

由于调用另一种方法,我需要在print "${a}"哪里可以是任何文本。a只需打印一个名称在运行时确定的变量。这怎么可能 ?

再举一个例子来说明:

打印 ????并且输出应该是'p''m'在脚本中已知但不是'n'

0 投票
1 回答
821 浏览

java - 使用模板引擎时的 Groovy 类加载器异常

我是 Groovy 的新手,并尝试使用 GStringTemplateEngine 在 JBoss 5.1 上执行一些 groovy 脚本

在我的本地开发环境中一切正常,但在移动到由不同团队管理的开发服务器时失败。

我发现异常是专门抛出的

在 GStringTemplateEngine.class 上,第 190 行

异常消息是

我不确定为什么它会抛出 URI 而不是分层错误。我假设它与权限有关,并且 GroovyClassLoader 无法解析生成的类。

有没有人见过这个错误?如果有人可以提供一些有关调试/修复问题的建议,那将会很有帮助。

0 投票
2 回答
2493 浏览

regex - 在R中提取字符串中间的字符(可能使用正则表达式?)

我正在与正则表达式作斗争,但我无法弄清楚。

我有一个从 last.fm (www.lastfm.com) 中提取的投标数据库。该文件是一个 .txt 文件,其中每一行的每一列都由超过 1.7 GB 的“,”(逗号)分隔,并且有一些字符弄乱了对 R 的读取。直到现在我设法理解了哪里出了问题并且主要问题来自其他引号内的“(引号)。

为了说明,这里是应用 readLines 时的 .txt 文件示例。

基本上这变成了一个包含 10 列的数据框:用户名、“艺术家”、“曲目”、喜爱 (0/1)、年、月、日、小时、分钟、秒

上面的例子可以很容易地阅读而没有任何问题,但是当发生这样的事情时我会遇到问题:

在第一种情况下,由于双引号,曲目名称中的逗号将其分为两个不同的列,而不是 10 列,我得到 11 列。在第二种情况下, 12" 使字符串“打开”,直到找到类似的情况才停止。发生这种情况时,我丢失了几行数据框。

我想要什么作为解决方案?我想删除所有“(引号),除了围绕艺术家姓名和曲目名称的那些。

输出:输出将在每行中总共有四 (4) 个“(引号)。“艺术家”和“曲目名称”。因此,给我带来问题的那 2 行的输出将是:

我尝试将 Regex 与 gsub 和 gstring 一起使用,但我无法让它仅提取多余的 " 标记。

如果这太复杂了,除了前 3 个(艺术家名称周围的引号和轨道名称周围的第一个引号)和最后一个(轨道名称末尾的引号)之外的所有 "的情况下(我会手动完成其余的)。我在这里假设没有艺术家名称包含引号。

任何帮助将不胜感激,如果您需要任何进一步的解释或数据,请告诉我。

0 投票
0 回答
82 浏览

groovy - GEB 和 GSTRING 都使用 $

我有一个在运行时评估的 SQL:

此 SQL 是通过ConfigSlurper读取 GEB 页面模块中的属性文件来提供的。

当我执行此操作时, $ 被 GEB $ 替换,它获取页面信息并检索value = [:],因此 SQL 失败。

我上面提到的值是 GSTRING 替换的输出 -

我在内容中拥有全部内容并在检查员处办理登机手续

在进行调试时,我可以看到 ${} 被替换为 GEB 页面,例如 BrowsePage.groovy,这对于 GEB 中的 $() 来说是正常的。

知道如何解决吗?