Phương thức Include?
Thuộc phần Kiến thức nền tảng trong hành trình Ruby của Coddy. Bài học 72 trên 88.
Khi làm việc với mảng (array), bạn thường cần kiểm tra xem có phần tử cụ thể nào tồn tại hay không trước khi thực hiện một hành động. Phương thức include? của Ruby trả lời trực tiếp câu hỏi này bằng cách trả về true hoặc false.
fruits = ["apple", "banana", "orange"]
puts fruits.include?("banana") # Đầu ra: true
puts fruits.include?("grape") # Đầu ra: falsePhương thức này kiểm tra xem có khớp chính xác hay không, vì vậy chuỗi có phân biệt chữ hoa chữ thường:
colors = ["Red", "Green", "Blue"]
puts colors.include?("Red") # In ra: true
puts colors.include?("red") # In ra: falsePhương thức này đặc biệt hữu ích trong các câu lệnh điều kiện (conditional statement). Thay vì lặp qua một mảng để tìm một phần tử, bạn chỉ cần kiểm tra xem phần tử đó có trong mảng hay không:
allowed_users = ["alice", "bob", "charlie"]
current_user = "bob"
if allowed_users.include?(current_user)
puts "Access granted"
else
puts "Access denied"
endPhương thức include? hoạt động với mọi kiểu dữ liệu được lưu trong mảng, bao gồm số, ký hiệu và cả các mảng khác.
Thử thách
DễĐọc hai dòng đầu vào:
- Danh sách các mặt hàng có sẵn trong cửa hàng, dưới dạng các chuỗi được phân tách bằng dấu phẩy (ví dụ:
apple,banana,orange,milk,bread) - Danh sách các mặt hàng trong danh sách mua sắm của bạn, dưới dạng các chuỗi được phân tách bằng dấu phẩy (ví dụ:
banana,eggs,milk,cheese)
Với mỗi mặt hàng trong danh sách mua sắm của bạn, hãy kiểm tra xem mặt hàng đó có trong cửa hàng bằng phương thức include? hay không. In ra từng mặt hàng, theo sau là Available hoặc Not available, tùy thuộc vào việc mặt hàng đó có trong kho của cửa hàng hay không.
Hãy nhớ rằng include? kiểm tra kết quả khớp chính xác, vì vậy phép so sánh có phân biệt chữ hoa chữ thường.
Ví dụ: nếu đầu vào là apple,banana,orange,milk,bread và banana,eggs,milk,cheese, đầu ra sẽ là:
banana - Available
eggs - Not available
milk - Available
cheese - Not availableNếu đầu vào là Red,Green,Blue và red,Green,Yellow, đầu ra sẽ là:
red - Not available
Green - Available
Yellow - Not availableNếu đầu vào là coffee,tea,juice và coffee,water,tea, đầu ra sẽ là:
coffee - Available
water - Not available
tea - AvailableNếu đầu vào là pen,pencil,eraser và pen, đầu ra sẽ là:
pen - AvailableTự làm thử
# Đọc danh sách hàng trong cửa hàng (các mặt hàng cách nhau bằng dấu phẩy)
store_items = gets.chomp.split(",")
# Đọc danh sách mua sắm (các mặt hàng cách nhau bằng dấu phẩy)
shopping_list = gets.chomp.split(",")
# TODO: Viết code bên dưới
# Với mỗi mặt hàng trong danh sách mua sắm, kiểm tra xem cửa hàng có mặt hàng đó không
# bằng phương thức (method) include? rồi in ra kết quảBài học này có một bài trắc nghiệm ngắn. Bắt đầu bài học để trả lời và theo dõi tiến độ.
Tất cả bài học trong Kiến thức nền tảng
4Toán tử phần 2
Toán tử logic phần 1Toán tử logic phần 2Ôn tập: logic đơn giảnToán tử logic phần 3Toán tử logic phần 42Biến và kiểu dữ liệu
Số và biếnKiểu dữ liệu chuỗiKiểu dữ liệu BooleanKiểu dữ liệu SymbolKiểm tra kiểu dữ liệuQuy ước đặt tênÔn tập: tạo biến8Vòng lặp
Vòng lặp for với khoảng giá trịVòng lặp whileThoátTiếp tụcÔn tập: giai thừaVòng lặp timesVòng lặp untilVòng lặp lồng nhauÔn tập: đầu vào động3Toán tử phần 1
Toán tử số họcToán tử moduloPhép tính số học rút gọnÔn tập: Toán cơ bảnToán tử so sánh6Nhập xuất cơ bản
In ra bằng putsIn ra bằng print và pIn ra bằng biếnNhập dữ liệu bằng getsPhương thức chompChuyển đổi kiểu dữ liệuÔn tập: Tính tuổiÔn tập: Đúng hay sai9Phương thức
Định nghĩa phương thứcTham số phương thứcGiá trị trả vềÔn tập: phương thức SigmaÔn tập: phương thức xác thựcGiá trị tham số mặc định15Theo dõi chi tiêu hằng ngày
Tổng quan dự ánThoát chương trìnhTự luyện tập: Trình biên dịch Ruby online