我在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
请帮助。
答案 0 :(得分: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"