如何重构此语句?

发布于 2025-01-26 05:23:54 字数 598 浏览 2 评论 0原文

重构代码的一种方法

var foot = foot.transform.position;
var hand = hand.transform.position;
if (distance > 0.5)
        {
          foot = hand;
          foot.transform.Translate(x , y  0);
        }
        else
        {
          foot.transform.Translate(x , y , 0);
         }

这是像下面的thie一样

var foot = foot.transform.position;
var hand = hand.transform.position;
distance > 0.5 ? {
          foot = hand,
          foot.transform.Translate(x , y  0)
                 } 
       : foot.transform.Translate(x , y  0);

,还是更多干净的代码/。

is that a way to refactor the code below

var foot = foot.transform.position;
var hand = hand.transform.position;
if (distance > 0.5)
        {
          foot = hand;
          foot.transform.Translate(x , y  0);
        }
        else
        {
          foot.transform.Translate(x , y , 0);
         }

like thie below

var foot = foot.transform.position;
var hand = hand.transform.position;
distance > 0.5 ? {
          foot = hand,
          foot.transform.Translate(x , y  0)
                 } 
       : foot.transform.Translate(x , y  0);

or more clean code/.?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

孤者何惧 2025-02-02 05:23:54

这可能是一个选择:

var instance = distance > 0.5 ? hand.transform.position : foot.transform.position;
instance.transform.Translate(x, y, 0);

This may be an option:

var instance = distance > 0.5 ? hand.transform.position : foot.transform.position;
instance.transform.Translate(x, y, 0);
乄_柒ぐ汐 2025-02-02 05:23:54
  1. 没有理由在IF及其他方面都具有相同的代码行,可以在该逻辑控制之后移动。
  2. 没有理由拥有其他理由,因为我们删除了唯一的线后,就没有剩下的行。
  3. 来自在进行重新分配时,语义清楚。
var limb = foot.transform.position;

if (distance > 0.5)
{
    limb = hand.transform.position;
}

limb.transform.Translate(x, y, 0);

也不需要三元操作员。

  1. There's no reason to have the same line of code in both the if and else, it can be moved after that logic control.
  2. There's no reason to have the else, because after we remove the only line, there'd be no lines left.
  3. From Jerry's comment, it's better to have descriptive variable names, and make it semantically clear when doing reassignment.
var limb = foot.transform.position;

if (distance > 0.5)
{
    limb = hand.transform.position;
}

limb.transform.Translate(x, y, 0);

No need for ternary operators either.

吃颗糖壮壮胆 2025-02-02 05:23:54

我可能会接受:

var foot = foot.transform.position;
var hand = hand.transform.position;
if (distance > 0.5)
{
  foot = hand;
  foot.transform.Translate(x , y  0);
}
else
{
  foot.transform.Translate(x , y , 0);
}

并将其重构为这样的东西:

var p = ( distance > 0.5 ? hand : foot ).transform.position ;
p.transform.Translate( x, y, 0 ) ;

因为表达的简洁性都具有全部效用。

您甚至可以使其成为“单线”,但它读起来很奇怪:

( distance > 0.5 ? hand : foot ).transform
                                .position
                                .transform
                                .Translate( x, y, 0 )
                                ;

前者读得更好

I might take this:

var foot = foot.transform.position;
var hand = hand.transform.position;
if (distance > 0.5)
{
  foot = hand;
  foot.transform.Translate(x , y  0);
}
else
{
  foot.transform.Translate(x , y , 0);
}

and refactor it to something like this:

var p = ( distance > 0.5 ? hand : foot ).transform.position ;
p.transform.Translate( x, y, 0 ) ;

Because conciseness of expression has a utility all its own.

You could even make it a "one-liner", but it just reads weird:

( distance > 0.5 ? hand : foot ).transform
                                .position
                                .transform
                                .Translate( x, y, 0 )
                                ;

The former reads better

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文