Ruby Coding Convention (Phần 5)
Trong phần cuối cùng tôi sẽ đề cập tới String và Regular Expressions
Collections
- Khởi tạo mảng và bảng băm
1234567# badarr = Array.newhash = Hash.new# goodarr = []hash = {} - Sử dụng
%w()
cho mảng các chữ,%i()
cho các ký tự
123# goodSTATES = %w(draft open closed)STATES = %i(draft open closed) - Sử dụng
first
vàlast
thay vì[0]
và[-1]
- Sử dụng
Set
thay choArray
nếu bạn cần một mảng gồm những phần tử không lặp lại - Sử dụng symbols thay cho các strings khi khai báo hash keys
123456# badhash = { 'one' => 1, 'two' => 2, 'three' => 3 }hash = { :one => 1, :two => 2, :three => 3 }# goodhash = { one: 1, two: 2, three: 3 } - Sử dụng
Hash#key?
thay choHash#has_key?
vàHash#value?
thay choHash#has_value?
1234567# badhash.has_key?(:test)hash.has_value?(value)# goodhash.key?(:test)hash.value?(value) - Sử dụng
Hash#fetch
123456789101112batman = { name: 'Bruce Wayne' }#badheroes[:supermann] # =>; nil#goodheroes.fetch(:supermann)#badbatman[:is_evil] || true#goodbatman.fetch(:is_evil, true)
String
- Nên sử dụng kiểu gọi string trong
" "
thay vì dùng kiểu nối string
12345# bademail_with_name = user.name + '<' + user.email + '>'# goodemail_with_name = "#{user.name} <#{user.email}>" - Sử dụng
' '
thay vì sử dụng" "
nếu bạn không cần gọi string thông qua biến, hay có những kí tự đặc biệt như/t /n '
- Sử dụng
String#<<
thay choString#+
.String#<<
nhanh hơn, nhất là khi bạn phải xử lí nhiều string objects
123# good and also fasthtml = ''html << 'Page title'
paragraphs.each do |paragraph|
html << “#{paragraph}”
end