Predicate delegate
ยศภูมิ มณีจันทร์ 650710986
1.What is Predicate delegate in C#?
Predicate delegate เป็น method ในภาษา C# ที่รับค่า parameter เข้ามาหนึ่งตัว และทำการตรวสอบเงื่อนไข ใช้ในการ Fillter ข้อมูลก่อนจะ return ค่ากลับไปเป็นประเภท boolean (true,false)
using System;
public class Program
{
public static void Main()
{
Predicate<string> isUpper = IsUpperCase;
bool result1 = isUpper("PROGRAMING LANGUAGE");
bool result2 = isUpper("programing language");
Console.WriteLine(result1);
Console.WriteLine(result2);
}
public static bool IsUpperCase(string str)
{
return str.Equals(str.ToUpper());
}
}True
False
2.What is Predicate delegate in Java?
Predicate delegate ในภาษา JAVA คือ ฟังก์ชันที่จะรับค่ามาแล้วส่งกลับค่ามาเป็น Boolean (true,false) จะสามารถเจอได้ใน Java 8 ขึ้นไป
Is number 77 is upper character : true
Is number 110 is upper character : false
3.What is Predicate delegate in C/C++?
ไม่มีการใช้ Predicate delegate ในภาษา C/C++ เหมือนกับภาษา C#/Python แต่หากพูดถึงแนวคิดที่มีความคล้ายกันก็จะเป็นการใช้พอยต์เตอร์แทน
C
Upper character result : true
4.What is Predicate delegate in Python?
Lambda function เป็นฟังก์ชัน ที่สามารถสร้างและเก็บค่าไว้ในตัวแปร หรือส่งเป็นพารามิเตอร์ของฟังก์ชันอื่นได้โดยที่ไม่จำเป็นต้องประกาศชื่อ แต่เรายังาสามารถใช้มันได้เหมือนกับค่าอื่นๆ หนึ่งในภาษา Python
True
False
Different Predicate delegate in C# and other Language
Java : ในภาษา Java นั้นสามารถใช้ Predicate<T> ได้จึงไม่มีความแตกต่างกับการใช้ Predicate delegate ในภาษา C#
C/C++ : ไม่พบการใช้ Predicate delegate ในภาษา C/C++ แต่หากเราพูดถึงแนวคิดที่คล้ายกันกับ Predicate delegate ในภาษา C# ก็มีการใช้ Function pointer มาแทนกันได้
Python : ในภาษา Python นั้นไม่ได้ใช้ชื่อ Predicate delegate แต่ใช้ชื่อ Lambda function แทน ส่วนในเรื่องของการทำงานนั้นเหมือนกับ Predicate delegate ของ C#
Clip video for presentation
Slide for presentation
Reference
Link for learning C# : https://www.tutorialsteacher.com/csharp/csharp-predicate/
Link for learning Java : https://codegym.cc/th/groups/posts/th.419.java-phe-rdikhet-phrxm-tawxyang
Link for learning Python : https://marcuscode.com/lang/python/lambda-functions
Last updated