- vừa được xem lúc

Block, Proc và Lambdas trong Ruby

0 0 5

Người đăng: Nguyễn Quang Việt

Theo Viblo Asia

Block, procs và lambdas trong Ruby là các tính năng này cho phép chuyển mã lệnh vào một method và thực thi mã đó tại một thời gian sau đó (khi method chứa mã lệnh được gọi).

Block đơn giản chỉ là tập hợp các lệnh thành một khối(method) được đặt trong dấu {...} hoặc do...end sử dụng {...} cho các block đơn(1 dòng lệnh) sử dụng do...end cho các block bội(multi-line)

Proc trong Ruby là một đối tượng đại diện cho một khối mã (block) có thể được lưu trữ trong một biến và thực thi sau đó. Proc có thể được sử dụng để gói gọn logic và truyền nó như một tham số cho các phương thức hoặc lưu trữ để sử dụng sau.

Tạo một đối tượng Proc: có thể tạo một đối tượng Proc bằng cách sử dụng Proc.new, hoặc sử dụng cú pháp -> (lambda)

vd:

my_proc = Proc.new{|x| puts "Hello #{x}"}

my_lambda = ->(x) {puts "Hello #{x}"}

Gọi một đối tượng Proc: để gọi một Proc, cần sử dụng phương thức call my_proc.call("viet") => Hello Viet my_lambda.call("viet") => Hello Viet

Sự khác biệt giữa Proc và Lambda:

  • Kiểm tra số lượng tham số: Lambda kiểm tra số lượng tham số đầu vào nghiêm ngặt hơn Proc. Nếu số lượng tham số không khớp với định nghĩa, lambda sẽ ném lỗi. Trong khi Proc sẽ gán giá trị nil cho tham số thiếu hoặc bỏ qua các tham số thừa

proc:

image.png

lambda:

image.png

  • Return behavior: trong Lambda, từ khóa return chỉ kết thúc Lambda đó, trong khi Proc, return sẽ kết thúc toàn bộ phương thức chứa nó.

proc:

image.png

lambda:

image.png

Ứng dụng của Proc:

  • Thường được dùng để truyền 1 block mã vào phương thức

vd:

image.png

image.png

  • Lưu trữ và tái sử dụng logic: Proc có thể lưu trữ logic và sử dụng lại ở nhiều nơi trong chương trình

vd: image.png

Bình luận

Bài viết tương tự

- vừa được xem lúc

Upload multipart / form-data files to S3 with Python AWS Lambda

Upload multipart / form-data files to S3 with Python AWS Lambda. Overview. Upload the multipart / form-data created via Lambda on AWS to S3. Repo.

0 0 429

- vừa được xem lúc

Giới thiệu Lambda AWS

Giới thiệu. Nếu bạn là 1 developer, đúng rồi đó, người mà luôn được mọi người nhờ sửa tủ lạnh, ti vi, quạt máy, ống nước, đủ thứ loại trên đời, khi bạn xây dựng một ứng dụng, bạn sẽ muốn được nhiều người sử dụng, trải nghiệm và đánh giá tốt.

0 0 35

- vừa được xem lúc

Lambda expression trong Java là cái giề?

Hãy nghĩ về lambda expression như một cú pháp rút gọn cho compiler (tương tự như khi ta lập trình trên các IDE, chỉ cần gõ psvm + Tab sẽ ra được hàm “public static void main(String[] args)”), khi comp

0 0 31

- vừa được xem lúc

Xây dựng ứng dụng tự động convert image to thumbnail bằng SAM, sử dụng trigger khi có file upload vào bucket của S3

1. Chuẩn bị môi trường. 1.1 Cài đặt python và pip.

0 0 35

- vừa được xem lúc

Nắm rõ JAVA LAMBDA EXPRESSION cho người mới bắt đầu

Lời nói đầu. Java Lambda Expression (biểu thức Lambda) là một tính năng được thêm vào Java 8.

0 0 37

- vừa được xem lúc

Xây dựng Serverless API với AWS API Gateway, Lambda (Nodejs), MongoDB Atlas

Bối cảnh. Cấp Cao Chiên Da được chủ tạch Tập đoàn Toàn Đập Đá giao nhiệm vụ trong một tuần phải xây dựng xong hệ thống quản lý thông tin thiết bị để phục vụ công tác chào mừng đại lễ kỷ niệm sắp tới.

0 0 20