Video: Hướng dẫn cách giải khối Rubik 3x3 nhanh nhất và đơn giản nhất 2025
Ruby cố gắng hữu ích khi một số phần của chương trình của bạn có lỗi đánh máy hoặc làm điều bất ngờ. Ruby hiển thị cảnh báo hoặc thông báo lỗi, thường là thông tin về nơi nó tìm ra vấn đề trong mã của bạn.
Ví dụ, nếu bạn vô tình làm một lỗi đánh máy khi làm một số môn toán đơn giản, Ruby sẽ cho bạn biết rằng bạn có một lỗi cú pháp.
Cú pháp cũng giống như ngữ pháp bằng tiếng Anh. Cú pháp ngôn ngữ lập trình là cấu trúc, trật tự, và chính tả của lệnh và câu lệnh trong ngôn ngữ đó.
Nếu bạn cố ý mắc lỗi chính tả:
2. 2: 036> 3j + 3 SyntaxError: (irb): 36: lỗi cú pháp, trình điều khiển bất ngờ, mong đợi kết thúc đầu vào 3j + 3 ^ từ / usr / bin / irb: 11: in '&
Bạn không có ý gõ chữ j sau số 3, và không giống như những gì bạn viết ở trường khi học đại số, cú pháp này không hợp lệ với Ruby.
Ruby hiển thị một thông báo lỗi là một chút bí ẩn, nhưng nếu bạn nhìn thấy lỗi cú pháp và số dòng hoặc vị trí, nó sẽ cho bạn một nơi để bắt đầu điều tra những gì đã xảy ra. Trong trường hợp này, Ruby đã hiển thị đúng dòng với một biểu tượng mũi tên nhỏ chỉ vào điểm mà nó nghĩ là sai. Cảm ơn bạn, Ruby!
Điều gì xảy ra khi bạn cố gắng để có được Ruby để hiển thị một googolplex? Một googol là một thuật ngữ thú vị có nghĩa là 10 được nâng lên đến sức mạnh thứ 100. A googolplex là 1, tiếp theo là googol (10 100 ). Giả sử, cháu trai 9 tuổi của Edward Kasner, Milton Sirotta, đặt ra thuật ngữ và định nghĩa nó là chữ số "một, tiếp theo là viết zero cho đến khi bạn cảm thấy mệt mỏi. "
Trong Interactive Ruby (IRB), lưu trữ một googol trong một biến được gọi là googol:
2. 2. 2: 030> googol = 10 ** 100 => 100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
Bây giờ hãy thử tăng 10 bởi một googol:
2. 2: 031> 10 ** googol (irb): 31: cảnh báo: trong a ** b, b có thể quá lớn => vô cực
Có một số giới hạn về kỹ năng toán học của Ruby. Ở đây, Ruby đang cho bạn thấy một cảnh báo rằng lệnh bạn gõ không hoạt động vì một phần của phép tính quá lớn. Nó cho thấy kết quả như Infinity, có vẻ như về quyền.
Xem Ruby có thể tìm ra một vấn đề khác không:
2. 2. 2: 037> x + 5 NameError: biến cục bộ không xác định hoặc phương pháp ' x & apos; đối với chính: Đối tượng từ (irb): 37 từ / usr / bin / irb: 11: in & apos;&
Trong trường hợp này, bạn đã cố gắng sử dụng một biến mà bạn không lưu trữ bất cứ thứ gì. Ruby không biết phải làm gì ở đây bởi vì nó không thể tìm thấy một biến có tên x (chưa).Bạn thường thấy lỗi này nếu bạn thực hiện một lỗi đánh máy trong tên của một biến (hoặc phương pháp). Kiểm tra chính tả của bạn và thử lại.
Một lỗi thông thường khác của Ruby có thể được nhìn thấy với mã này:
2. 2. 2: 038> x = nil => nil 2. 2. 2: 039> x + 5 NoMethodError: phương pháp không xác định & apos; + ' cho nil: NilClass từ (irb): 39 từ / usr / bin / irb: 11: in & apos;&
Bạn có thể nghĩ đến Zero như cách Ruby đại diện cho "không có gì. "Các lỗi Ruby đang hiển thị có nghĩa là nó không biết làm thế nào để làm bổ sung bằng không, có vẻ hợp lý. Trong mã của bạn, điều này có thể có nghĩa là bạn mong đợi nhận được kết quả từ một số phần khác của chương trình, nhưng mã không trả lại.
Một vấn đề cuối cùng mà bạn thường gặp là nếu bạn cố gắng làm điều gì đó với dữ liệu không tương thích:
2. 2. 2: 040> x = "a" => "a" 2. 2. 2: 041> x + 5 TypeError: không chuyển đổi ngầm định của Fixnum thành Chuỗi từ (irb): 41: in ' + ' từ (irb): 41 từ / usr / bin / irb: 11: in '&
Ký tự a được gán cho biến x. Ở đây, tuy nhiên, bạn đã cố gắng thêm số 5 vào chữ a. Rõ ràng đây là vô nghĩa. Ruby cũng nghĩ như vậy, và nói với bạn rằng nó không thể chuyển đổi dữ liệu theo một cách để làm cho nó hoạt động.
Có lẽ bạn sẽ gặp lỗi cú pháp thường xuyên nhất, bởi vì lỗi đánh máy là lỗi dễ gây ra nhất. Khi bạn thấy một thông báo lỗi, cách tốt nhất của bạn để hành động là để cẩn thận so sánh những gì bạn gõ với mã dự án của bạn.