(หลังจากปล่อยให้ C# นำหน้าไปนาน)
ดูตัวอย่างแรกสุดก่อน
public static void main(String[] args) {
int plus2(int x) { return x+2; }
int(int) plus2b = plus2;
System.out.println(plus2b(2));
}
ในที่สุด Kingdom of Nouns อย่าง java ก็มี verb citizen โผล่เข้ามาแล้ว
ในบรรทัดแรก
plus2
ก็คือ Type ชนิด functionส่วนบรรทัดที่ 2 ก็คือการกำหนดให้
plus2b
เป็นตัวแปรที่ reference ไปยัง function plus2
บรรทัดที่ 1 และ 2 จากตัวอย่างข้างบน สามารถยุบเขียนในรูป anonymous function ได้แบบนี้
int(int) plus2b = (int x) {return x+2; };
แถมด้วย syntactic sugar
แทนที่จะต้องเขียนแบบนี้
void sayHello(java.util.concurrent.Executor ex) {
ex.execute((){ System.out.println("hello"); });
}
ก็สามารถเขียนแบบนี้ได้
void sayHello(java.util.concurrent.Executor ex) {
ex.execute { System.out.println("hello"); }
}
No comments:
Post a Comment