gpt4 book ai didi

coding-style - 控制流(ifs、switches)的赋值是好的风格吗?

转载 作者:行者123 更新时间:2023-12-02 00:03:00 26 4
gpt4 key购买 nike

我见过很多这样写的代码;

conditional_value = if thing_is_true
true_value
else
other_value
end

我对此感到矛盾。一方面,使用条件(或任何其他句法 block ,如开关、开始/结束、循环,甚至函数定义)的返回值来减少冗余并清楚地说明代码在做什么是很好的。另一方面,缩进常常是刺耳和困惑的。

作为第二种可能性,如果决定将所有行缩进到第一行开头的水平,这会破坏整个结构的视觉提示。

conditional_value = if thing_is_true
true_value
else
other_value
end

这是依赖换行符的第三种选择(至少在 Ruby 中);

conditional_value =
if thing_is_true
true_value
else
other_value
end

第四种选择是咬紧牙关,将赋值语句放在每个分支中。

if thing_is_true
conditional_value = true_value
else
conditional_value = other_value
end

我担心这会成为一个“意见”问题,但我认为有些事实我不知道;

  • 这些样式在专业代码中出现的频率如何?
  • 人们阅读的难易程度如何?
  • 这些样式中的任何一种通常会导致错误吗?
  • 这些样式以何种方式维护或破坏代码视觉呈现的完整性?

最佳答案

我只会分配三元运算符的结果 val = condition ? true_value: false_value,不是 if 表达式的值。这可能只是 Java/C/C++ 的习惯,但以这种方式使用 if 似乎确实有可能混淆流控制和表达式值。您上面的第四个备选方案可以采用这种风格。

但如果您有一个一致的风格,包括使用 if 的值,那也很好。

关于coding-style - 控制流(ifs、switches)的赋值是好的风格吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20204923/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com