ruby-on-rails - It costs 2 mins to read

Thời gian trôi qua nhanh thật, từ cái bài Post ‘Tôi đã bắt đầu học Ruby như thế nào” là vừa đúng 2 tháng, 27/08/2014 -> 27/10/2014, Vậy là từ lúc bắt đầu học Ruby, tính ra là gần 3 tháng rồi. Trình độ của mình vẫn gà gà như thường. Chỉ mới xong một Project nhỏ bằng Sinatra, Code vài bài trên Codewars.com và hiện bắt đầu làm quen với Rails. Trong 2 tháng này, có nhiều sự kiện xảy ra, đó là việc mình quyết định từ bỏ con đường Data Processing, rời khỏi vùng thoải mái của mình để trở thành Ruby On Rails Developer Full time – Cảm ơn Anh Khoa đã đặt niềm tin vào Em.

Quay lại chủ đề hôm nay, Khi học Ruby, có một việc mình khá confuse là sự khác nhau giữa and&& (hay sự khác nhau giữa or||). Mình đọc trên một số Blog cũng như StackOverFlow, thì giữa tụi nó khác nhau ở mức độ ưu tiên, mức độ ưu tiên của and sẽ thấp hơn && và mình thấy mọi người dặn là hạn chế dùng and, or khi không cần thiết. Nhưng mức độ ưu tiên của nó ảnh hưởng như thế nào thì không ai cho mình một ví dụ cụ thể để dễ nắm cả. Mãi đến hôm nay, đọc bài viết trên Toptal thì mình đã sáng tỏ.

val1 = true and false
val2 = true && false
Although these two statements might appear to be equivalent, they are not, due to the order of operations. Specifically, the and and or operators have lower precedence than the = operator, whereas the && and   operators have higher precedence than the = operator, based on order of operations.

To help clarify this, here’s the same code, but employing parentheses to clarify the default order of operations:

(val1 = true) and false # results in val1 being equal to true
val2 = (true && false) # results in val2 being equal to false

Ôn bài:

 &&=

 ||=

Trích từ bài viết 10 câu hỏi phỏng vấn về Ruby hay gặp nhất – http://www.toptal.com/ruby/interview-questions