【问题标题】:Display the value of a variable in itself显示变量本身的值
【发布时间】:2018-03-01 02:20:05
【问题描述】:

我在 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

请帮忙。

【问题讨论】:

    标签: ruby quine


    【解决方案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"
    

    【讨论】:

    • 您好!它试图像你说的那样做,但这次它显示所有%c%s,但不显示新行或变量本身......我在新文件中有这个:Some Code%c($var = %c%s%c) %% [10,34,$var,34,10]%cSome Code
    • 如果您能提供更多信息,我可能会提供进一步的帮助……您是如何运行/执行这个的?例如。您正在运行什么命令等。您在哪个版本的 Ruby 中运行它?这是完整的脚本还是还有更多内容?
    猜你喜欢
    • 1970-01-01
    • 2019-03-15
    • 1970-01-01
    • 2011-04-19
    • 2016-04-03
    • 2022-01-23
    • 2019-09-10
    • 2021-04-05
    • 2011-03-20
    相关资源
    最近更新 更多