Ruby程式設計規範

2021-09-04 23:25:02 字數 3873 閱讀 1110

也不知道算不算翻譯,我也不懂日語,看**瞎猜的,隨後會附上完整的翻譯,朋友已經幫忙翻譯去了。哈哈

[url]

一。縮排

縮排應該是2個字元,這個是公認的。比如:

if x > 0

if y > 0

puts "x > 0 && y > 0"

endend

二。每行最多字元不能超過80個。

三。空行,意思大概就是類和類之間,方法和方法之間,塊之間要空行。比如:

class foo

...endclass bar

...end

你要這麼像下面這麼寫就不規範啦:
class foo

...endclass bar

...end

四。沒個類中,第一行**和最後一行**不能和類宣告,類結束符號(end)之間有空行。比如:
51cto這裡顯示有問題啊
class foo
attr :bar

def baz

...end

def quux

..end

end
下面是錯誤的示範:
class foo
attr :bar

def baz

...end

def quux

...end

end
五。好像是為每個方法加注釋吧,是為了方便生成rdoc。比如:
# コンマ區切の文字列+str+を分割し、結果を配列にして返す。

def split_csv(str)

return str.split(/,/)

end

省略一些看不懂的。
六。方法在有引數的時候要加上括號,雖然可省略。在沒有引數的情況下,不加括號。比如:
def foo(x, y)

...enddef foo

...end

下面是錯誤的示範:
def foo x, y

...enddef foo()

...end

七。定義類方法應該用self。比如:
class foo

def self.foo

...end

end

下面是錯誤示範:
class foo

def foo.foo

...end

end

八,還是方法括號的方面,看**(方法呼叫的時候不要省括號,沒有括號的不要亂加,print,puts等場合可以省略):
foo(1, "abc")

obj.foo(1, "abc")

barprint "x = ", x, "\n"

下面是錯誤的示範:
foo 1, "abc"

obj.foo 1, "abc"

bar()

九。基本的do...end使用,用在分行寫塊的時候。比如:
foo(x, y) do

...endx = bar(y, z) do

...end

下面是錯誤示例:
foo(x, y) 

x = bar(y, z)

十。塊**寫在一行的時候應該用{},而不使用do...end。比如:
s = ary.collect .join(",")
錯誤示例:
s = ary.collect do |i| i.to_s end.join(",")
十一。returen的使用。在返回表示式的時候要用returen,return不加括號。比如:
def add(x, y)

return x + y

end

錯誤示例:
def add(x, y)

x + y

enddef add(x, y)

return(x + y)

end

寫到這,我才發現上篇blog裡(tdd如何工作)的**不規範啊。
十二。yield。這沒例子,看不太懂。
十三。條件語句使用。看**(條件簡單的要用修飾句):
if x > 0

puts "x > 0"

else

puts "x <= 0"

endunless x

puts "x is false"

endputs "x is true" if x

錯誤的例子:
if x > 0 then

puts "x > 0"

endunless x

puts "x is false"

else

puts "x is true"

endputs "foo && bar && baz && quux" if foo &&

bar && baz && quux

十四。case使用。比如:
case x

when 1

...when 2

...end

錯誤示例:
if x == 1

...elsif x == 2

...endcase x

when 1 then

...when 2 then

...end

十五。又是條件語句使用。比如:
if x > 0

msg = "x > 0"

else

msg = "x <= 0"

end

錯誤示例:
msg = if x > 0

"x > 0"

else

"x <= 0"

end

十六。迴圈語句使用,省略do。
while cond

...enduntil cond

...end

錯誤示例:
while cond do

...end

十七。無限迴圈的時候用loop..do
loop do

...end

錯誤示例:
while true

...end

還有一些命名規範。。以後再補充吧。。。
注:文中所說的「錯誤示例」,是指**不規範,那種用法其實是可以用的。

ruby的命名規範

ruby的標識名用來指向常量,變數,方法,類和模組。標識名的首字元用來 幫助我們確定標識所指向內容的作用域。一些標識名,就是上面所示的關鍵字,不 能用來當作常量,變數,方法,類或模組的名字。ruby的標識名區分大小寫。ruby使用乙個約定來幫助它區別乙個名字的用法 名字前面的第乙個字元表明這個名字的...

ruby的命名規範

ruby的標識名用來指向常量,變數,方法,類和模組。標識名的首字元用來 幫助我們確定標識所指向內容的作用域。一些標識名,就是上面所示的關鍵字,不 能用來當作常量,變數,方法,類或模組的名字。ruby的標識名區分大小寫。ruby使用乙個約定來幫助它區別乙個名字的用法 名字前面的第乙個字元表明這個名字的...

嘗試ruby程式設計

1.安裝好ruby1.8.7 在命令列中ruby v 顯示版本號,就說明ruby已經安裝好了。雙擊路徑下的irb.bat檔案,進入命令視窗,進行互動式ruby 2.簡單用法 1 puts puts hello world 回車 hello world puts 1 3 4puts 2 3 6 2 d...