Đặt tên trong Ruby
Ta cùng tìm hiểu cách đặt các loại tên trong Ruby
1. Tên – Trong Ruby, tên được sử dụng để ký hiệu các hằng, biến, phương thức, lớp và module. Kí tự đầu tiên của tên được Ruby dùng để phân biệt chức năng của tên đó. Một số tên nhất định, hoặc là tên trùng với từ khóa không được phép dùng làm tên biến, phương thức, lớp hay module. Kí tự viết thường bao gồm các kí tự từ “a” đến “z”, kể cả dấu “_”. Chữ viết hoa bao gồm các chữ cái từ “A” đến “Z”, còn chữ số thì gồm “0” đến “9”. Khi đặt tên trong Ruby, bạn không được phép dùng chữ số làm kí tự đầu của tên, và tên không được bao gồm bất kì kí tự đặc biệt nào ngoài những kí tự nêu trên.
2. Biến – Biến trong Ruby được dùng để chứa các loại dữ liệu khác nhau. Bạn có thể dùng ngay biến mà không cần phải khai báo. Bản thân cách đặt tên biến phân biệt phạm vi của biến (biến toàn cục, cục bộ, hay biến đối tượng).
2.1 Biến cục bộ có chữ cái đầu là chữ viết thường, hoặc dấu gạch dưới ( _ ), tiếp đó là các kí tự hợp lệ khác (sunil, _z/, hit_and_run).
2.2 Biến đối tượng (là biến được khai báo bên trong một đối tượng) có tên bắt đầu bằng dấu “a còng” @, tiếp theo là một kí tự thường (kể cả dấu gạch dưới _ ) hoặc hoa, sau đó có thể có hoặc không có các kí tự hợp lệ khác (@sign, @_, @Counter).
2.3 Biến lớp (khai báo trong một lớp và sử dụng bên trong lớp) bắt đầu bằng 2 dấu “a còng” (@@), tiếp đó là một kí tự thường (kể cả dấu gạch dưới _ ) hoặc hoa, sau đó có thể có hoặc không có các kí tự hợp lệ khác (@@sign, @@_, @@Counter).
2.4 Tên Hằng được bắt đầu bằng một kí tự viết hoa, sau đó là các kí tự hợp lệ khác. Tên của lớp hoặc tên module đều theo quy tắc đặt tên Hằng. Ví dụ: module MyMath, PI = 3.1416, class MyPune.
2.5 Biến toàn cục được bắt đầu bằng kí tự đô la (“$”), tiếp theo là các kí tự hợp lệ khác. Tên biến toàn cục còn có dạng “$-“ + bất kì kí tự đơn lẻ nào ($counter, $COUNTER, $-x).
3. Tên phương thức phải được bắt đầu bằng chữ cái thường (hoặc dấu gạch dưới). “?” và “!” là các kí tự đặc biệt duy nhất được phép nằm ở cuối tên phương thức (Dấu ! đặt sau tên một phương thức sẽ biến phương thức đó thành phương thức ra lệnh. Ta sẽ xem xét loại phương thức này sau.)
Theo quy ước đặt tên trong Ruby, ta dùng dấu gạch dưới ( _ ) để ngăn cách các từ trong 1 tên biến hay tên phương thức. Đối với tên lớp, module và Hằng số, quy ước là viết hoa kí tự đầu của từ, thay vì sử dụng dấu gạch dưới, để phân biệt các từ trong một tên.
Cần chú ý rằng bất kì biến nào, tại các thời điểm khác nhau, tham chiếu đến nhiều kiểu đối tượng khác nhau. Một hằng trong Ruby cũng là tham chiếu đến một đối tượng. Hằng số được tạo ra khi chúng được gán (thường là trong phạm vi lớp hoặc module, hằng không nên khai báo trong phạm vi phương thức – ta sẽ bàn đến cái này sau). Ruby cho phép bạn thay đổi giá trị của hằng, tuy nhiên làm thế sẽ sinh ra một thông điệp cảnh báo từ Ruby. Hơn nữa, biến trong Ruby đóng vai trò tham chiếu đến các đối tượng, và quá trình dọn rác tự động diễn ra đối với các biến này.
Một ví dụ cho thấy Ruby là ngôn ngữ kiểu động (dynamically typed language) – p007dt.rb.
#Ruby is dynamic x = 7 #integer x = "house" #string x = 7.5 #real
Kiểu biến cơ bản trong Ruby là biến số (Numeric – các kiểu con gồm có Fixnum, Integer và Float), biến chuỗi (String), mảng (Array), băm (Hash), đối tượng (Object), biểu tượng (Symbol), khoảng (Range) và biệt thức chính quy (RegEx). Ruby không bắt buộc bạn phải khai báo kiểu biến cho những biến loại này – nếu nó giống số nguyên, có thể nó là số nguyên; còn nếu trông nó giống chuỗi, Ruby có thể coi nó là chuỗi. Phương thức class trả lại tên lớp của một đối tượng, ví dụ:
s = ‘hello’ s.class # String
Trong Ruby, mọi thứ bạn tác động đến là đối tượng, và kết quả của những tác động này lại chính là các đối tượng. Không có kiểu biến cụ thể:
5.times { puts "Mice!\n" } # more on blocks later
"Elephants Like Peanuts".length
Giang said,
mấy hôm trước đặt tên cho class mà cứ bị lỗi “….must be CONSTANT”, xem các code mẫu thì đều thấy viết hoa chữ đầu, nhưng hôm nay mới hiểu tại sao
hoá ra tên class và tên module đều đặt theo kiểu Hằng
thanks a lot ![]()
quan said,
ac ac hok hieu ji het ha`
RSS feed for comments on this post · TrackBack URI
