-1

我在 Ruby 中做一个 quine,它将在一个新文件中显示它自己的代码。我正在尝试执行以下操作以在新文件中打印变量本身:

$var = "Some Code%c$var = %c%s%c % [10,34,$var,34,10]%cSome Code" % [10,34,$var,34,10]

新文件中的$var变量为空,这就是我想要的:

Some Text
$var = "Some Code%c$var = %c%s%c % [10,34,$var,34,10]%cSome Code" % [10,34,$var,34,10]
Some Text

当我启动它时,我会在新文件中得到它:

Some Code
$var = "" % [10,$var,10]
Some Code

请帮忙。

4

1 回答 1

1

%%您需要对字符串中的百分号 ( ) 进行转义,并将$var赋值表达式括在括号中,以便它可用于以下插值,如下所示:

($var = "Some Code%c($var = %c%s%c) %% [10,34,$var,34,10]%cSome Code") % [10,34,$var,34,10]

这应该导致以下结果:

>> ($var = "Some Code%c($var = %c%s%c) %% [10,34,$var,34,10]%cSome Code") % [10,34,$var,34,10]
=> "Some Code\n($var = \"Some Code%c($var = %c%s%c) %% [10,34,$var,34,10]%cSome Code\") % [10,34,$var,34,10]\nSome Code"
于 2018-03-01T03:13:24.903 回答