..


ลิงก์ผู้สนับสนุน

ทางเลือกทางไวยากรณ์ในทับทิม

บทความที่เขียนโดย Claudio Garau

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

ในบทความสั้น ๆ นี้เรานำเสนอเป็นตัวอย่างง่ายๆตามรอบและไม่เพียง แต่ผลที่ต้องการคือการสร้างโปรแกรมอย่างง่ายที่สามารถพิมพ์ตัวเลขทั้งหมดที่อยู่ในช่วงระหว่าง"1"และ"10"

วิธีการแก้ปัญหาดังต่อไปนี้ที่อยู่ :

 



 ทำให้ 1,2,3,4,5,6,7,8,9,10

 
จะดูเหมือนแรกเห็นสะดวกมาก แต่ถ้าช่วงของเราได้มากขนาดใหญ่ (กล่าวระหว่าง"1"และ"100"), คิดอีกครั้งสิ่งที่เรากำลังมองหาเป็นสคริปต์ที่ต้องการเพียง 2 พารามิเตอร์ : ค่าเริ่มต้น สุดท้าย (ต่ำสุดและสูงสุด) วงเล็บว่าช่วง
ในวิธีนี้โค้ดที่ใช้จะสามารถใช้อีกครั้งสำหรับการสร้างผลผลิตมาก"ขนาดใหญ่"

แต่ละ pemette ทำเราสร้างค่าเริ่มต้นจะเพิ่มขึ้นจนกว่าจะถึงค่ายกเลิกเป็นอาร์กิวเมนต์ที่จะสร้างเราจะเห็นตัวอย่าง :

 



 . ฉัน | (1 .. 10) ทำแต่ละ |



  



 ทำให้การ







 ท้าย

 
ดังนั้นสำหรับทุกค่า (แต่ละ) ในรูปที่สอดคล้องกับช่วงที่จะพิมพ์จนกว่าจะถึงค่าเท่ากับที่จัดตั้งขึ้นในเงื่อนไขที่วางไว้โดยพารามิเตอร์ตัวที่สอง (ในกรณีที่"10"ของเรา)
แถบแนวตั้งสองที่ใส่เพิ่มตัวแปร ("| i |") มีการใช้ตัวแปรเพื่อกำหนดเขตที่อยู่ภายในวงที่แยกตัวออกมาจากส่วนของโค้ดที่เป็นมันเป็นค่า"ในตัวเอง"

ได้ผลเหมือนกันอาจจะทำได้โดยการที่แตกต่างของไวยากรณ์ leggermanete ใช้และ"บันทึก"จำนวนของรหัสที่พิมพ์ :

 



 (1 .. 10) แต่ละ. {| i | i} ทำให้

 
ค่าที่ส่งกลับจะถูกส่งกลับโดยการดำเนินการของคำสั่ง ("{| i | i} ทำให้") vaolore ซ้ำสำหรับแต่ละช่วงบนพื้นฐานของสองพารามิเตอร์ที่เครื่องหมายดำเนินการที่

อีกทางเลือกหนึ่งอาจจะขึ้นอยู่กับการใช้งานของลูป, ดังต่อไปนี้

 



 i สำหรับใน (1 .. 10)



  



 ทำให้การ







 ท้าย

 
อีกครั้งที่เราผ่านพารามิเตอร์ 2 รอบที่กำหนดช่วงของค่าที่ตัวแปร"i"จะมีเพิ่มขึ้นในระหว่างที่ 10 ซ้ำจำเป็นที่ค่า"10"หมายถึงสภาพที่สิ้นสุดวงจรที่

แต่ทางเลือกของเราจะไม่ได้ดำเนินการเสร็จสิ้นให้ดูที่เส้นง​​่ายๆนี้ของรหัส :

 



 1.upto (10) {| i | i} ทำให้

 
ไม่เกินวิธีการสำหรับวัตถุที่จะเป็นตัวแทนของชนิดที่เป็นตัวเลข, ไวยากรณ์ของวิธีการนี้เป็นทางเลือกให้ว่า"การ"เขียน"x.upto (Y)"ในความเป็นจริงเทียบเท่ากับการพิมพ์"for (i = x, x < = y i + +) {...}"
ในทางปฏิบัติกับ"เกิน"เราก็สามารถได้รับผลเดียวกันของวงจรโดยไม่จำเป็นต้องหันไปห่วงผลที่ได้คือการประหยัดในแง่ของรหัสการพิมพ์และทรัพยากรให้โดยระบบที่จะรันคำสั่ง

ตอนนี้ขอดูตัวอย่างหนึ่งครั้งสุดท้าย :

 



 * ทำให้ (1 .. 10)

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

ในประเภทเดียวกัน ...
E - Learning
Ruby และ Ruby on Rails (หลักสูตร) Ruby และ Ruby on Rails (หลักสูตร)
สร้างโปรแกรมซอฟต์แวร์และเว็บด้วยทับทิมและ ร. จาก 39 €
ลิงก์ผู้สนับสนุน