【发布时间】:2017-07-20 18:17:17
【问题描述】:
这可能以前有人问过,但我找不到。我认为我的 googlefu 不够好。总之,
说我有这个:
string cat = "meow"
cat = cat.replace("meow","purr");
cat = Regex.Replace(cat, "purr", "Meow!");
将 cat 变量设置为它的操纵副本似乎是额外的。有没有办法通过 ref 方式执行此操作,这样我就不必将变量设置为自身的修改版本?
要明确的是,我在这里询问的是上面的第 2 行和第 3 行。
编辑:我不相信marked dupe 是对我问题的完全欺骗。我的问题是专门针对这种事物存在的询问。链接的帖子专门解释了为什么它不存在。对于不熟悉不可变概念的人来说,这个问题可能仍然值得保留。
【问题讨论】:
-
您可以直接使用
cat = cat.replace("meow", "Meow!")。我认为这个例子不是一个好例子。你的意思是问如何在不创建临时变量的情况下交换两个字符串? -
@WiktorStribiżew 仅提供您将变量设置为自身的多种情况。上面的代码没有最终的游戏目标。 :P