Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby 什么是「;“红宝石之路”;调整变量分配?(代码式问题)_Ruby_Coding Style_Formatting - Fatal编程技术网

Ruby 什么是「;“红宝石之路”;调整变量分配?(代码式问题)

Ruby 什么是「;“红宝石之路”;调整变量分配?(代码式问题),ruby,coding-style,formatting,Ruby,Coding Style,Formatting,假设我有这个未被污染的代码: some_var = Hash.new some_var[:name] = "blah" some_var[:address] = "101 blahblah lane" another = "Olly olly oxen free!" ruby是如何让它变得漂亮的 选项1:保持原样 选项2:调整相关内容 some_var = Hash.new some_var[:name] = "blah" some_var[:address] =

假设我有这个未被污染的代码:

some_var = Hash.new
some_var[:name] = "blah"
some_var[:address] = "101 blahblah lane"

another = "Olly olly oxen free!"
ruby是如何让它变得漂亮的

选项1:保持原样

选项2:调整相关内容

some_var           = Hash.new
some_var[:name]    = "blah"
some_var[:address] = "101 blahblah lane"

another = "Olly olly oxen free!"
选项3:将所有内容对齐

some_var           = Hash.new
some_var[:name]    = "blah"
some_var[:address] = "101 blahblah lane"

another            = "Olly olly oxen free!"
选项4:


谢谢

IMHO 1是最常见的,但我肯定见过2。另外,至少有一个样式指南中也提到了后一个:

当多个对称指定相继在一行上时, 对齐它们的赋值运算符。另一方面,不要对齐 看起来很相似的不相关赋值的赋值运算符 巧合

理由:对齐有助于读者认识到作业是 相关的或对称的


IMHO 1是最常见的,但我肯定见过2。另外,至少有一个样式指南中也提到了后一个:

当多个对称指定相继在一行上时, 对齐它们的赋值运算符。另一方面,不要对齐 看起来很相似的不相关赋值的赋值运算符 巧合

理由:对齐有助于读者认识到作业是 相关的或对称的


使用您的示例中的哈希,我将执行另一个版本:

some_var = {
  :name    => "blah",
  :address => "101 blahblah lane",
}
another = "Olly olly oxen free!"
或者使用Ruby 1.9

some_var = {
  name:    "blah",
  address: "101 blahblah lane",
}
another = "Olly olly oxen free!"

使用您的示例中的哈希,我将执行另一个版本:

some_var = {
  :name    => "blah",
  :address => "101 blahblah lane",
}
another = "Olly olly oxen free!"
或者使用Ruby 1.9

some_var = {
  name:    "blah",
  address: "101 blahblah lane",
}
another = "Olly olly oxen free!"
我真的不喜欢2号或3号。当你把这样的东西对齐时,你就是在把东西分组。即使它们是“对称的”,这也完全不是您在变量赋值中想要的。像

a      = 1
foobar = 2
baz    = 3
从视觉上看,您正在对a、foobar和baz进行分组,并对1、2和3进行分组。即使1、2和3是相关的,它们仍然应该与其标签一起分组,显示它们是相关的,可以通过在作业周围使用有效的空格来完成

现在,数据结构就是您想要分组的一个例子

some_method([[1, "foo"],
  [2, "bar"],
  [3, "baz"]])
(国际海事组织)读起来难吗

some_method([[1, "foo"],
             [2, "bar"],
             [3, "baz"]])
这是一种情况,但我有一个4给你

some_var = Hash.new.tap do |h|
  h[:name] = "blah"
  h[:address] = "101 blahblah lane"
end

another = "Olly olly oxen free!"
对象#点击将产生您点击到块中的对象,并将该块评估为您点击的对象。所以在那个例子中,Hash.new被放入,被块修改,然后返回给某个变量。我的一些同事非常讨厌它,但我发现它做得非常好,可以说“这里的一切都与初始化这个表达式直接相关”

我真的不喜欢#2或#3。当你把这样的东西对齐时,你就是在把东西分组。即使它们是“对称的”,这也完全不是您在变量赋值中想要的。像

a      = 1
foobar = 2
baz    = 3
从视觉上看,您正在对a、foobar和baz进行分组,并对1、2和3进行分组。即使1、2和3是相关的,它们仍然应该与其标签一起分组,显示它们是相关的,可以通过在作业周围使用有效的空格来完成

现在,数据结构就是您想要分组的一个例子

some_method([[1, "foo"],
  [2, "bar"],
  [3, "baz"]])
(国际海事组织)读起来难吗

some_method([[1, "foo"],
             [2, "bar"],
             [3, "baz"]])
这是一种情况,但我有一个4给你

some_var = Hash.new.tap do |h|
  h[:name] = "blah"
  h[:address] = "101 blahblah lane"
end

another = "Olly olly oxen free!"

对象#点击将产生您点击到块中的对象,并将该块评估为您点击的对象。所以在那个例子中,Hash.new被生成,被块修改,然后返回给某个变量。我的一些同事非常讨厌它,但我发现它做得非常好,它说“这里的所有内容都与初始化这个表达式直接相关”

knut,感谢您的帮助。您对对齐长变量名(无论其类型如何)有何想法?@SizzlePants:我尝试对齐相关内容,但也尝试获得类似长度的变量名。如果我的变量变得很长,这通常是一个迹象,表明我不理解我想要解决的问题。克努特,谢谢你的帮助。您对对齐长变量名(无论其类型如何)有何想法?@SizzlePants:我尝试对齐相关内容,但也尝试获得类似长度的变量名。如果我的变量变得很长,这通常是一个迹象,表明我不理解我想要解决的问题。