Latest web development tutorials
×

Ruby หลักสูตร

Ruby หลักสูตร Ruby แนะนำโดยย่อ Ruby สิ่งแวดล้อม Ruby ติดตั้ง Linux Ruby ติดตั้ง Windows Ruby การเข้ารหัสจีน Ruby เลือกบรรทัดคำสั่ง Ruby ตัวแปรสภาพแวดล้อม Ruby ไวยากรณ์ Ruby ชนิดข้อมูล Ruby คลาสและวัตถุ Ruby กรณีระดับ Ruby ตัวแปร Ruby ผู้ประกอบการ Ruby หมายเหตุ Ruby เงื่อนไข Ruby การไหลเวียน Ruby ทาง Ruby กลุ่ม Ruby โมดูล Ruby เชือก Ruby แถว Ruby กัญชา Ruby วันที่และเวลา Ruby ขอบเขต Ruby iterator Ruby input และ output ไฟล์ Ruby File ชั้นเรียนและวิธี Ruby Dir ชั้นเรียนและวิธี Ruby ผิดปกติ

Ruby การสอนที่ทันสมัย

Ruby เชิงวัตถุ Ruby นิพจน์ปกติ Ruby การเข้าถึงฐานข้อมูล - DBI หลักสูตร Ruby MySQL Ruby CGI โครงการ Ruby CGI ทาง Ruby CGI Cookies Ruby CGI Sessions Ruby ส่ง Email SMTP Ruby Socket โครงการ Ruby XML, XSLT, XPath Ruby Web Services Ruby multithreading Ruby JSON Ruby RubyGems

ทับทิมบล็อก

คุณรู้อยู่แล้วว่าวิธีการกำหนดวิธีทับทิมและวิธีที่คุณเรียกวิธี ในทำนองเดียวกันทับทิมมีแนวคิดของบล็อกที่

  • บล็อกประกอบด้วยมากรหัส
  • คุณจำเป็นต้องใช้ชื่อบล็อก
  • การป้องกันรหัสถูกปิดล้อมอยู่ในวงเล็บปีกกา {} ภายใน
  • จากการที่มันได้เคยปิดกั้นการเรียกฟังก์ชั่นที่มีชื่อเดียวกันซึ่งหมายความว่าหากชื่อบล็อกของคุณสำหรับการทดสอบแล้วคุณต้องการที่จะใช้เพื่อเรียกสิ่งนี้ว่าการทดสอบฟังก์ชั่นบล็อก
  • คุณสามารถใช้คำสั่งที่อัตราผลตอบแทนที่จะเรียกบล็อก

ไวยากรณ์

block_name{
   statement1
   statement2
   ..........
}

ที่นี่คุณจะได้เรียนรู้วิธีการใช้คำสั่งที่อัตราผลตอบแทนที่ง่ายต่อการเรียกบล็อกนอกจากนี้คุณยังจะได้เรียนรู้วิธีการใช้คำสั่งที่อัตราผลตอบแทนที่มีพารามิเตอร์ให้กับบล็อกที่เรียกว่าในตัวอย่างคุณจะเห็นทั้งสองประเภทของคำสั่งที่อัตราผลตอบแทน

งบผลผลิต

ลองดูที่คำสั่งตัวอย่างเช่นอัตราผลตอบแทน:

#!/usr/bin/ruby
# -*- coding: UTF-8 -*-

def test
   puts "在 test 方法内"
   yield
   puts "你又回到了 test 方法内"
   yield
end
test {puts "你在块内"}

ตัวอย่างของผลการดำเนินงานดังกล่าวข้างต้นดังต่อไปนี้:

在 test 方法内
你在块内
你又回到了 test 方法内
你在块内

นอกจากนี้คุณยังสามารถส่งผ่านคำสั่งที่อัตราผลตอบแทนที่มีพารามิเตอร์ นี่คือตัวอย่าง:

#!/usr/bin/ruby
# -*- coding: UTF-8 -*-

def test
   yield 5
   puts "在 test 方法内"
   yield 100
end
test {|i| puts "你在块 #{i} 内"}

ตัวอย่างของผลการดำเนินงานดังกล่าวข้างต้นดังต่อไปนี้:

你在块 5 内
在 test 方法内
你在块 100 内

ที่นี่หลังจากคำสั่งที่อัตราผลตอบแทนที่ใช้พารามิเตอร์คุณยังสามารถส่งผ่านพารามิเตอร์หลาย ในบล็อกคุณสามารถวางตัวแปรระหว่างสองแถบแนวตั้งที่จะยอมรับพารามิเตอร์ ดังนั้นในโค้ดข้างต้นให้ผลผลิต 5 คำสั่งจะถูกส่งเป็นพารามิเตอร์ค่าของ 5 ชิ้นทดสอบ

ตอนนี้มองไปที่คำสั่งต่อไปนี้:

test {|i| puts "你在块 #{i} 内"}

ที่นี่คุ้มค่า 5 จะได้รับฉันตัวแปร ตอนนี้เราใส่สังเกตคำสั่งต่อไป

puts "你在块 #{i} 内"

ซึ่งจะทำให้คำสั่งผลลัพธ์คือ:

你在块 5 内

หากคุณต้องการที่จะผ่านหลายพารามิเตอร์แล้วงบผลผลิตที่ได้จะเป็นดังนี้:

yield a, b

ในเวลานี้ตามที่ปรากฏในบล็อก:

test {|a, b| statement}

พารามิเตอร์คั่นด้วยเครื่องหมายจุลภาค

บล็อกและวิธีการ

คุณได้เห็นระหว่างบล็อกและวิธีการวิธีการความสัมพันธ์ คุณมักจะใช้คำสั่งผลผลิตเรียกบล็อกจากวิธีการที่มีชื่อเดียวกัน ดังนั้นรหัสจะเป็นดังนี้:

#!/usr/bin/ruby

def test
  yield
end
test{ puts "Hello world"}

ตัวอย่างนี้เป็นวิธีที่ง่ายที่สุดในการบรรลุบล็อกคุณใช้คำสั่งผลผลิตเรียกบล็อกทดสอบ

แต่ถ้าพารามิเตอร์สุดท้ายก่อนที่จะใช้วิธีการที่มีและจากนั้นคุณสามารถวิธีการที่ถูกส่งผ่านบล็อกและบล็อกนี้อาจจะได้รับมอบหมายให้พารามิเตอร์ที่ผ่านมา ถ้า * และและยังปรากฏในรายการพารามิเตอร์และควรวางไว้ที่ด้านหลัง

#!/usr/bin/ruby

def test(&block)
   block.call
end
test { puts "Hello World!"}

ตัวอย่างของผลการดำเนินงานดังกล่าวข้างต้นดังต่อไปนี้:

Hello World!

เริ่มต้นและบล็อก END

ทุกแฟ้มแหล่งทับทิมสามารถประกาศเมื่อบล็อกรหัส (บล็อก BEGIN) เมื่อไฟล์ถูกโหลดการทำงานและหลังจากที่โปรแกรมเสร็จสิ้นการดำเนินการบล็อกรหัสเพื่อใช้ใน (จบ block)

#!/usr/bin/ruby

BEGIN { 
  # BEGIN 代码块
  puts "BEGIN 代码块"
} 

END { 
  # END 代码块
  puts "END 代码块"
}
  # MAIN 代码块
puts "MAIN 代码块"

โปรแกรมสามารถมีหลายบล็อกเริ่มต้นและสิ้นสุด บล็อก BEGIN จะถูกดำเนินการในลำดับที่ปรากฏ บล็อก END ตามที่ปรากฏในลำดับที่กลับ เมื่อดำเนินการโครงการดังกล่าวข้างต้นก่อให้เกิดผลลัพธ์ต่อไปนี้:

BEGIN 代码块
MAIN 代码块
END 代码块