Posts

Showing posts with the label select

List Comprehensions in Python and Ruby Way

Image
List Comprehensions เป็น Feature ที่น่าสนใจบน Python และมีอีกหลายภาษาที่นำ Feature นี้ไปใช้ ที่ผมพบคือ Coffee Script http://www.python.org/dev/peps/pep-0202/ List Comprehensions จะพูดง่ายๆ คือการที่เราทำอะไรสักอย่างกับ List ที่มีอยู่ แล้วคืนค่ากลับมาเป็น List เช่น ยกกำลัง 2 จำนวนเต็มทุกตัวที่เป็นเลขคู่ หรือพูดอีกแง่คือ เราสามารถสร้าง List จากคำสั่ง for, if ก็ย่อมได้ ซึ่งเราสามารถใช้วิธีการวน for (และใส่ if ข้างใน) ก็สามารถทำได้เช่นเดียวกัน แต่การใช้ List Comprehensions จะทำได้ในบรรทัดเดียว และมันเร็วกว่าด้วย (เรื่องของเร็วกว่า ลองไปศึกษาเพิ่มเติมดูนะครับ) มาดูในภาษา Python กันก่อน ส่วนในภาษา Ruby นั้น ไม่มี List Comprehensions ให้ใช้ แต่มี method ที่ช่วยให้เราทำในลักษณะเดียวกันได้ นั่นคือ select และ map จะเขียนได้ประมาณนี้ครับ แต่ map นั้นจะเป็นการทำอะไรสักอย่างกับ List เท่านั้น ไม่สามารถใช้ในการสร้าง List ขึ้นมาใหม่ได้เหมือน List Comprehensions ใน Python เมื่อดูจาก Syntax แล้ว ... ผมให้ Python ชนะเรื่องนี้นะ ... Code มัน Readable กว่าจริงๆ  ...

[Android Dev] :: Spinner for Choose Something

Image
วันใหม่แล้วสินะ... เรื่องนี้เป็นเรื่องของ Spinner ครับ หน้าตาของ Spinner ก็ประมาณนี้ พอกดแล้วก็จะขึ้น Menu ให้เลือก ซึ่งเมนูนั้น... ก็จะเก็บเป็น Array ครับ... Let's Coding Begin ในส่วนของ XML ก็ประมาณนี้ครับ คำสั่งเกี่ยวกับ Spinner ไม่มีอะไรเป็นพิเศษเลยจริง ๆ ... เป็นคำสั่งพื้นฐานในการแสดง Object ทั้งหมด และแน่นอน Spinner ของผมวางอยู่บน Relative Layout ตามถนัด ^^ จากโค้ดเมื่อกี้ จะได้หน้าตาประมาณนี้แหละครับ ต่อมาในส่วนของ Java import ของที่ต้องใช้เข้ามาทั้งหมดก่อน เราจะเห็นได้ว่า... มีของเล่นใหม่นั่นคือ ArrayAdapter และ AdapterView ซึ่งสองตัวนี้แหละครับ ที่จะช่วยเราจัดการข้อมูลใน Spinner ต่อมาก็เป็นการประกาศตัวแปร และ Link กับ Interface เช่นเคย จะเห็นได้ว่า บาสสร้าง String Array ขึ้นมาเก็บข้อมูลที่จะแสดงใน Spinner ทั้งหมดด้วย... พอจะเดาออกไหมครับ ?? ว่าเราจะทำโปรแกรมอะไรกันนนน... ต่อมาเราจะทำการ สร้าง ArrayAdapter ข้อมูลชนิด String (Type ขึ้นอยู่กับข้อมูลใน Array ของคุณ) Method ในการสร้าง ArrayAdapter (บรรทัดที่ 32) รับ Parameter ทั้งหมด 3 ตัว...