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

วิธีทับทิม

วิธีทับทิมคล้ายกับฟังก์ชั่นการเขียนโปรแกรมภาษาอื่น ๆ วิธีทับทิมสำหรับ bundling หนึ่งหรือมากกว่างบที่ซ้ำกันเป็นหนึ่งหน่วย

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

ก่อนที่จะเรียกวิธีการที่ควรจะกำหนดไว้เป็นอย่างอื่นทับทิมจะผลิตยกเว้นเรียกวิธีการที่ไม่ได้กำหนด

ไวยากรณ์

def method_name [( [arg [= default]]...[, * arg [, &expr ]])]
   expr..
end

ดังนั้นคุณสามารถกำหนดวิธีการที่ง่ายดังนี้

def method_name 
   expr..
end

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

def method_name (var1, var2)
   expr..
end

คุณสามารถตั้งค่าเริ่มต้นสำหรับพารามิเตอร์พารามิเตอร์ไม่จำเป็นต้องส่งค่าเริ่มต้นถ้าโทรวิธีการ:

def method_name (var1=value1, var2=value2)
   expr..
end

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

method_name

อย่างไรก็ตามเมื่อคุณเรียกวิธีการที่มีพารามิเตอร์พารามิเตอร์ที่คุณต้องใช้เมื่อเขียนชื่อวิธีตัวอย่างเช่น:

method_name 25, 30

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

ตัวอย่าง

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

def test(a1="Ruby", a2="Perl")
   puts "编程语言为 #{a1}"
   puts "编程语言为 #{a2}"
end
test "C", "C++"
test

เรียกเอาท์พุทตัวอย่างข้างต้นคือ

编程语言为 C
编程语言为 C++
编程语言为 Ruby
编程语言为 Perl

ค่าตอบแทนจากวิธีการ

ทับทิมแต่ละวิธีการส่งกลับค่าเริ่มต้น ค่านี้เป็นค่าส่งกลับโดยคำสั่งที่ผ่านมา ตัวอย่างเช่น:

def test
   i = 100
   j = 10
   k = 0
end

เมื่อเรียกวิธีการนี้จะกลับมาประกาศสุดท้ายของ K ตัวแปร

คำสั่งกลับทับทิม

ทับทิมในงบการกลับมาใช้ในการแสดงหนึ่งหรือมากกว่าค่าจากวิธีทับทิม

ไวยากรณ์

return [expr[`,' expr...]]

หากมีมากกว่าสองสำนวนที่จะได้รับอาร์เรย์ที่มีค่าเหล่านี้จะได้รับค่าตอบแทน หากไม่มีการแสดงออกจะได้รับจะไม่มีค่าตอบแทน

ตัวอย่าง

return

或

return 12

或

return 1,2,3

พิจารณาตัวอย่างต่อไปนี้:

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

def test
   i = 100
   j = 200
   k = 300
return i, j, k
end
var = test
puts var

เรียกเอาท์พุทตัวอย่างข้างต้นคือ

100
200
300

จำนวนตัวแปรของการขัดแย้ง

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

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

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

def sample (*test)
   puts "参数个数为 #{test.length}"
   for i in 0...test.length
      puts "参数值为 #{test[i]}"
   end
end
sample "Zara", "6", "F"
sample "Mac", "36", "M", "MCA"

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

参数个数为 3
参数值为 Zara
参数值为 6
参数值为 F
参数个数为 4
参数值为 Mac
参数值为 36
参数值为 M
参数值为 MCA

วิธีการเรียน

เมื่อภายนอกวิธีการวิธีการที่กำหนดไว้ในระดับเริ่มต้นทำเครื่องหมายเป็นส่วนตัวในทางตรงกันข้ามถ้าวิธีการที่กำหนดไว้ในระดับที่เริ่มต้นถูกทำเครื่องหมายเป็นสาธารณะ

วิธีการเริ่มต้นของการมองเห็นและแท็กส่วนตัวสามารถเปลี่ยนแปลงได้ผ่านโมดูล(Module)ในที่สาธารณะหรือส่วนตัว

เมื่อคุณต้องการในการเข้าถึงวิธีการเรียนที่คุณต้อง instantiate ชั้นเรียน จากนั้นใช้วัตถุที่คุณสามารถเข้าถึงสมาชิกของชั้นเรียนใด ๆ

ทับทิมมีวิธีการเข้าถึงโดยไม่ต้องใช้วิธีการ instantiation ลองมาดูวิธีการประกาศและการเข้าถึงวิธีการเรียนไปนี้:

class Accounts
   def reading_charge
   end
   def Accounts.return_date
   end
end

เรารู้อยู่แล้วว่าคำสั่ง RETURN_DATE วิธีการ มันเป็นหลังจากที่ชื่อชั้นตามด้วยจุดตามด้วยชื่อวิธีการหลังจากที่จุดที่จะประกาศ คุณโดยตรงสามารถเข้าถึงวิธีการเรียนดังนี้

Accounts.return_date

ในการเข้าถึงวิธีนี้คุณไม่จำเป็นต้องสร้างบัญชีชั้นวัตถุ

คำสั่งนามแฝงทับทิม

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

จำนวนของตัวแปรทั่วโลก ($ 1, $ 2, ... ) จากนามแฝงไม่ได้ เขียนในตัวตัวแปรทั่วโลกสามารถทำให้เกิดปัญหาร้ายแรง

ไวยากรณ์

alias 方法名 方法名
alias 全局变量 全局变量

ตัวอย่าง

alias foo bar
alias $MATCH $&

ที่นี่เราได้กำหนดนามแฝงสำหรับ foo บาร์เพื่อกำหนดนามแฝงสำหรับ $ และ $ MATCH

คำสั่งทับทิมundef

คำสั่งนี้จะใช้ในการยกเลิกคำนิยามวิธีการundefไม่สามารถปรากฏภายในร่างกายวิธีการ

โดยใช้นามแฝงundefและอินเตอร์เฟซชั้นสามารถปรับเปลี่ยนเป็นอิสระจากผู้ปกครองชั้นเรียนแต่โปรดทราบว่าเมื่อวิธีการภายในของตัวเองเรียกมันอาจทำลายโปรแกรม

ไวยากรณ์

undef 方法名

ตัวอย่าง

ตัวอย่างต่อไปนี้จะถูกยกเลิกนิยามวิธีบาร์ชื่อ:

undef bar