Đào Sâu Về Toán Tử "===" ROR - Viblo
Có thể bạn quan tâm
Là dân IT chắc không ai thoát khỏi câu hỏi: " == và === khác nhau như thế nào?". Nếu ai đó đã biết về Javascript thì trong Javascript, toán tử === chỉ trả về true nếu như cả hai toán hạng đều cùng một loại và có cùng giá trị. Nếu so sánh khác loại, kết quả sẽ trả về false. Đơn giản vậy thôi...
Vậy còn trong Ruby thì sao?Toán tử === trong Ruby thường được gọi là case equality operator khác với toán tử == hay còn gọi là generic equality.
Thằng == so sánh có cùng giá trị hay không. Đây là cách so sánh phổ biến và cơ bản nhất trong hầu hết các ngôn ngữ lập trình.
Toán tử === thực sự là một cái gì đó rất thú vị. Nó có ở khắp mọi nơi trong Ruby nhưng hầu hết mọi người chưa bao giờ thấy nó thực ra ở đó. Nhưng, làm thế nào đến nó ở khắp mọi nơi và không ai đã từng nhìn thấy nó? Nó ẩn bên trong một cấu trúc điều khiển thông thường, "case / when". Bất cứ khi nào bạn đang sử dụng "case / when", trên thực tế bạn đang sử dụng toán tử "===" và điều này làm cho câu lệnh case trên Ruby mạnh hơn nhiều so với các ngôn ngữ như C hay Java
Toán tử === được hiểu đơn giản là so sánh theo kiểu trường hợp. Các điều kiện của case sẽ đc implement với mỗi class tương ứng như:
Range Regex Proc ... Một ví dụ về toán tử "==="
(1...10) === 5 # => trueToán tử === sẽ kiểm tra array trong mệnh đề trên có thằng 5 hay không. Nếu có sẽ trả về true nếu không trả về false.
(1..5) === 3 # => true (1..5) === 6 # => false Integer === 42 # => true Integer === 'fourtytwo' # => false /ell/ === 'Hello' # => true /ell/ === 'Foobar' # => false "a" === "b" # false # different values, different objects "a" === "a" # true # same valuesMột ví dụ khác cho chúng ta dễ hình dung về == và ===
"Linh" == "Linh" #=> true "Linh" === "Linh" #=> trueNhưng chờ chút, vậy chúng khác nhau ở đâu ?
String === "Linh" #=> true String == "Linh" #=> falseTới đây chắc các bạn biết nó khác nhau ở đâu rồi nhỉ.
Sử dụngBiết nó là gì rồi, vậy sài nó như nào nhỉ ?
Array.grep
Trong mảng ruby có một phương thức gọi là grep. nó sử dụng toán tử ===
# grep(pattern) → array (1..100).grep(38..44) #=> [38, 39, 40, 41, 42, 43, 44] names = %w( William Kate Adam Alexa James Natasha ) names.grep(/am/) # => %w(William Adam James)Kết quả ta có được là một mảng với các phần tử thỏa === với pattern của grep.
Ranges
=== kiểm tra để xem đối tượng đó là một trong các phần tử của range đó hay không.
(2..4) == 3 # => false (2..4) === 3 # => true (2..4) === 6 # => false (Date.new(2017, 8, 21)..Date.new(2017, 8, 27)) === Date.new(2017, 8, 27) # => true (Date.new(2017, 8, 21)..Date.new(2017, 8, 27)) === Date.new(2017, 8, 29) # => false ("a".."z") === "a" # => true ("a".."z") === "abc" # => falseClass / Module
mod === obj #→ true or false=== trả về true nếu obj là một instance của mod hoặc một trong những hậu duệ của mod. Việc sử dụng hạn chế cho module, nhưng có thể được sử dụng để phân loại các đối tượng theo class. Về cơ bản thực hiện như:
obj.kind_of?(mod)Ví dụ xíu:
"text".class.ancestors # => [String, Comparable, Object, Kernel, BasicObject] String === "text" # => true Object === "text" # => true Comparable === "text" # => true Numeric === "text" # => falseRõ như ban ngày 
Regexp
rxp === str #→ true or falsevề cơ bản thì nó là :
rxp =~ str >= 0Ví như:
/^[a-z]*$/ === "HELLO" #=> false /^[A-Z]*$/ === "HELLO" #=> trueProc
proc === obj # → result_of_procGọi block với một đối tượng như tham số giống như #call.
is_today = -> (date) { Date.current === date } is_today === Date.current # => true is_today === Date.tomorrow # => false is_today === Date.yesterday # => falseLambdas
Tương tự như Proc. Lambdas cũng có
is_even = -> (x) { x % 2 == 0 } is_even == 4 # => false is_even === 4 # => true is_even === 5 # => falseObject
Đọc tới đây rồi bây giờ với Object thì === và == có gì khác nhau không? Các bạn thảo luận chút xíu nhé
. Chúc mọi người ngày làm việc hiệu quả.
Từ khóa » Toán Tử Chia Hết Trong Javascript
-
Javascript: Kiểm Tra Một Số Có Chia Hết Cho N Hay Không - Freetuts
-
Vòng Lặp For Trong Javascript In Các Số Chia Hết Cho 3 Từ 0 - 100
-
Các Toán Tử Trong JavaScript
-
Toán Tử Trong JavaScript - VietTuts
-
Chia Lấy Phần Dư Và Chia Lấy Phần Nguyên Trong Javascript
-
Tổng Hợp Kiến Thức Về Các Toán Tử Trong Javascript (Phần 2)
-
Tìm Xem Biến Có Chia Hết Cho 2 Không - HelpEx
-
Toán Tử Số Học Trong JavaScript
-
Các Toán Tử Trong Javascript - KungFu Tech
-
Toán Tử Trong JavaScript - NIIT - ICT HÀ NỘI
-
Toan Tu Chia Het | Cà-phê.vn
-
[JavaScript] Bài 12: Xuất Ra Các Số Chia Hết Cho 5. - YouTube
-
Cách Kiểm Tra Số Nguyên Dương Trong Javascript - MyLop
-
Xóa Phần Tử Trong Array JavaScript - Viblo
-
Chương Trình Javacfscript Kiểm Tra Xem Một Số Là Số Lẻ Hay Số Chẵn
-
Toán Tử Trong JavaScript - TEK4
-
Javascript — Tìm Nếu Biến Chia Hết Cho 2 - Wake-up
-
Hiển Thị Các Số Chia Hết Cho 5 Trong Khoảng A, B (a <= B). | How Kteam
-
Loại Vòng Lặp Nào Nhanh Nhất Trong JavaScript? - NIIT - ICT Hà Nội