Def กับ Lambda มันคืออะไร ?
บลอคนี้จะเขียนไปเรื่อย เนื้อหาที่จะเขียนมันก็จะไม่เรียง มั่วๆ หน่อยนะครับ 555 แล้วแต่ว่าผู้เขียนช่วงนั้นๆ ทำอะไร 5555 🥱
เนื่องจากช่วงนี้ทำงานเกี่ยวกับเขียน code บ่อย ผมก็เข้าใจดีเลยว่าคนที่เริ่มแบบงมเองมันงงมากๆ หลายคนที่เขียนเป็นอาจจะสามารถหา keyword เพื่อไปเสิชต่อเองได้ ก็หลักๆ จะดูใน stackoverflow.com 👈
ผมก็เลยอยากจะทำเวอร์ชั่นภาษาไทยบ้าง เผื่อมีคนหลงเข้ามาอ่านกันนะครับ 🤭
ในส่วนของวันนี้ ได้ความรู้จากเพื่อนมา เกี่ยวกับ def และ lambda ครับ
เบื้องต้นนะครับ ผมหัดใช้ python 3.0 โดยใช้ Spyder 3.7 desktop 👊
ขออนุญาตเขียนบน desktop แล้วก็อบรูปเอานะครับ อิอิ
def or lambda ; สำหรับผมมันเหมือนเราประกาศการทำงาน (ฟังก์ชั่น) สักชุดนึง
ตัวอย่าง
ผมอยากสร้าง function ให้ +1 ในชุดข้อมูลใดๆ โดยใช้ def หรือ lambda สิ่งที่ได้ก็จะประมาณนี้
- สร้าง function โดยใช้ def โดยกำหนดชื่อให้มันเป็น ‘plusOne’ โดยข้อมูลใดๆ ที่จะนำมาใช้กับฟังก์ชั่นนี้ต้องเป็น int (ตัวเลข) จะเขียนได้แบบนี้….
- สร้าง function โดยใช้ lambda โดยกำหนดชื่อให้มันเป็น ‘plusOne’ เหมือนกัน จะเขียนได้แบบนี้….
ตัวอย่างการใช้งาน
สมมติว่าผมมีชุดข้อมูลนึงชื่อ ‘array’ โดยกำหนดค่าให้ข้างในมี list 1,2,3
ถ้ากดรันเราจะได้ list ข้อมูลที่ชื่อว่า array ออกมา
จากนั้นก็กำหนดฟังก์ชั่นเก็บไว้ในตัวแปรแบบนี้
- lambda_test คือ ผมกำหนด ฟังก์ชั่น ไว้ว่าข้อมูลใดๆ ให้ +1
- def_test คือ plusOne อ้างอิงจากข้างบนนะครับ ก็คือ +1
โดยจะแสดงให้ดูผลลัพธ์โดยใช้ map มาช่วยนะครับ
อธิบายกับ map แปบ
ซึ่งเราจะเรียกใช้ function ด้วย
map(function ที่จะใช้,ชุดข้อมูลที่จะนำไปใช้กับ function)
แต่ในที่นี้ผมเพิ่ม list ครอบหน้า map(function, data) อีกที > เป็นการนำผลลัพธ์ชุดข้อมูลแต่ละตัวที่ผ่าน function เก็บเป็น list อีกที อ่านละงงๆ ใช่มั้ย 5555
ความหมายของมันคือ
จะนำข้อมูล ‘array’ ไปใช้ฟังก์ชั่นกับ ‘lambda_test’ โดยผลลัพธ์ที่ได้ ให้อารมณ์แบบว่า append แต่ละ values ใน list ‘array’ เมื่อ +1 เสร็จ แล้วเก็บผลเป็น list ไว้ในตัวแปร ‘result_lambda’
ซึ่งในส่วนของ ‘result_def’ ก็ความหมายเดียวกันแค่ฟังก์ชั่นใช้ def ในการเขียนครับ
ผลลัพธ์ที่ได้…
ได้ผลลัพธ์เหมือนกันจ้าาาา
เป็นไงกันบ้างครับ พอจะเข้าใจกันบ้างมั้ยเอ่ย coding จริงๆ ผมว่าเขียนเป็นอังกฤษน่าจะเข้าใจมากกว่าครับ เพราะมันสั้น 55555555555 😱
ไว้พบกันใหม่ในบทความหน้าครับผม
ปล. นี่เป็นหน้าต่างที่เขียน code ทั้งหมดครับ