ตัวแปลภาษา Ruby มีฟังก์ชั่นที่เรียกว่า Garbage Collector ซึ่งทำหน้าที่บริหารจัดการหน่วยความจำโดยอัตโนมัติ เพื่อให้โปรแกรมสามารถใช้พื้นที่ในหน่วยความจำได้อย่างมีประสิทธิภาพมากที่สุด ซึ่ง Garbage Collector นั้นก็เป็นฟังก์ชั่นที่ใช้ในภาษา Java และ C# เช่นกัน
7) ไม่ต้องมีตัวจบบรรทัด
เนื่องจากภาษา Ruby แปลโค้ดแบบ interpreter แปลไปทีละบรรทัด เราเลยไม่ต้องใส่ตัวจบบรรทัดให้มัน ภาษา Ruby จะแยกแยะโค้ดแต่ละบรรทัดได้เองจากการขึ้นบรรทัดใหม่
อย่างไรก็ภาษา Ruby ก็ยังอนุญาตให้ใช้เครื่องหมาย ";"(comma) แทนการขึ้นบรรทัดใหม่ได้ในกรณีที่เราต้องการเขียนโค้ดหลายๆชุดไว้ในบรรทัดเดียว ดังตัวอย่างต่อไปนี้ครับ
a=10; b=15; sum=a+b; puts sum; |
ซึ่งจะมีความหมายเดียวกับการที่เราเขียนแยกบรรทัด ดังตัวอย่างด้านล่างนี้ โดยการรันซอร์ซโค้ดทั้งสองแบบจะได้ผลลัพธ์เหมือนกันคือการพิมพ์ค่าของ sum ออกมาทางหน้าจอ
1 | a = 10 |
8) พิมพ์ข้อความออกมาทางหน้าจอ
เรามีวิธีสั่งให้ Ruby พิมพ์ข้อความออกมาทางหน้าจออยู่ 3 วิธีด้วยกันคือ
วิธี | ผลลัพธ์ |
ใช้คำสั่ง puts | พิมพ์ข้อความออกทางหน้าจอพร้อมกับขึ้นบรรทัดใหม่ให้ด้วย |
ใช้คำสั่ง print | พิมพ์ข้อความออกทางหน้าจออย่างเดียวโดยไม่ขึ้นบรรทัดใหม่ให้ |
ใช้คำสั่ง printf | พิมพ์ข้อความออกทางหน้าจออย่างเดียวโดยไม่ขึ้นบรรทัดใหม่ให้ และสามารถกำหนดลักษณะของการแสดงผลข้อความได้ด้วย |
โค้ดต่อไปนี้จะเป็นตัวอย่างการพิมพ์ข้อความออกทางหน้าจอของทั้งสามรูปแบบครับ
1 | # พิมพ์ข้อความพร้อมกับขึ้นบรรทัดใหม่ด้วย puts |
ซึ่งจะได้ผลลัพธ์ดังนี้
Arsenal
Manchester UnitedChelsea
Liverpool : This is AnfieldLiverpool : This is Anfield
Manchester UnitedChelsea
Liverpool : This is AnfieldLiverpool : This is Anfield
หมายเหตุ: จริงๆแล้ว puts, print และ printf ไม่ใช้ "คำสั่ง" ครับแต่พวกมันเป็นเมธอด !? ซึ่งเมธอดที่เรียกใช้ได้โดยที่เราไม่ต้องสร้างอ็อบเจกต์ขึ้นมาเหล่าจะสังกัดอยู่ในคลาส NilClass ครับ ดังนั้นหากเราจะเรียกมันว่า "คำสั่ง" ก็คงไม่ผิดในแง่ของการนำมาใช้งานนัก
9) Parallel Assignment
ภาษา Ruby สามารถกำหนดค่าให้กับตัวแปรในแบบที่เรียกว่า parallel asignment ได้ครับ คือใช้เครื่องหมายเท่ากับแค่อันเดียวในการกำหนดค่าให้ตัวแปรหลายๆตัว ซึ่งการกำหนดค่าแบบนี้จะพบเห็นได้บ่อย ในภาษา Ruby ครับ
ลองมาดูกันสักหน่อยว่า parrelle asignment นั้นหน้าตาเป็นยังไง
สมมติว่าเราอยากจะกำหนดค่าให้กับตัวแปร 4 ตัว ตามปกติแล้วเราอาจจะทำได้ด้วยการเขียนโค้ด 4 บรรทัดแบบนี้
1 | model = "Jazz", |
แต่ถ้ากำหมดค่าแบบ parallel asignment เราจะใช้แค่บรรทัดเดียว ซึ่งตะได้ผลลัพธ์เหมือนกับโค้ดด้านบน
model, mfg, color, cost = "Jazz", "Honda", "White", 640000 |
อย่างไรก็ตาม ไม่ได้หมายความว่าเราจำเป็นต้องใช้ parallel asignment ทุกครั้งไปนะครับ ทั้งนี้ขึ้นอยู่กับความเหมาะสมและความชอบของแต่ละคนครับ
Thanks for good article.
ตอบลบ