官术网_书友最值得收藏!

What is a block?

So what exactly is a block? In other programming languages, a block is called a closure. Blocks allow you to group statements together and encapsulate behavior.

There are two ways to create blocks in Ruby and we'll use a proc to illustrate them:

  • Using curly braces

We'll begin by illustrating how to use blocks with the curly braces syntax, as shown here:

        add = Proc.new { |x, y| x + y} 
add[1, 2]

Running this code will return 3. The code inside of the curly braces is inside the block

  • Using do...end

The alternate way to use blocks is using the do...end syntax:

        add = Proc.new do |x, y| 
x + y
end

add[1, 2]

This will give you the same result as when we used the curly bracket syntax. A rule of thumb in Ruby is to use curly braces when you want to have all logic on the same line. Technically, you can write your program in a single line if you use curly braces.

The next obvious question is: why use procs when you can use methods to perform the same functionality? The answer is that procs give you more flexibility than methods. With procs you can store an entire set of processes inside a variable and then call the variable anywhere else in your program.

主站蜘蛛池模板: 来安县| 汾西县| 迁安市| 海晏县| 辛集市| 玛曲县| 临泉县| 固原市| 丹巴县| 翁牛特旗| 如皋市| 开化县| 婺源县| 昌江| 盐亭县| 泸水县| 周宁县| 阳原县| 黔西县| 吴堡县| 彰化县| 修文县| 广东省| 镇康县| 都匀市| 彭山县| 公安县| 修武县| 上蔡县| 高邑县| 宁化县| 云阳县| 大埔县| 利辛县| 社会| 安国市| 梁山县| 秦安县| 财经| 阳江市| 日照市|