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

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.

主站蜘蛛池模板: 丹巴县| 甘谷县| 乐都县| 永善县| 田阳县| 大庆市| 都匀市| 德惠市| 芦溪县| 大兴区| 甘孜| 盘山县| 贵定县| 武宣县| 雅安市| 和硕县| 峨边| 财经| 望都县| 甘孜| 南投市| 建德市| 当涂县| 梅河口市| 广丰县| 江源县| 陆河县| 龙州县| 张家港市| 榆林市| 房产| 闽清县| 福海县| 荆门市| 原平市| 稻城县| 利津县| 玉溪市| 长兴县| 扶绥县| 福贡县|