คลาสและวัตถุใน Golang คืออะไร?

Khlas Laea Watthu Ni Golang Khux Xari



แนวคิดพื้นฐานในการเขียนโปรแกรมคอมพิวเตอร์เช่น ระดับ และ วัตถุ จัดเตรียมโครงสร้างสำหรับการจัดกลุ่มรหัสเป็นโมดูลที่ใช้ซ้ำได้และปรับเปลี่ยนได้ โกลัง มีไวยากรณ์ คุณลักษณะ และปรัชญาที่โดดเด่นเป็นของตนเอง ตรงกันข้ามกับภาษาอื่นๆ วิธีแก้ปัญหาไม่ชัดเจนเมื่อพูดถึงแนวคิดของ ระดับ และ วัตถุ ใน ไป . ในบทความนี้ เราจะมาดูกันว่า Go มีแนวคิดอย่างไร ระดับ และ วัตถุ และเปรียบเทียบกับภาษาโปรแกรมอื่นๆ อย่างไร

คลาสและออบเจกต์คืออะไร

ก่อนที่เราจะตอบได้ว่า ไป มี ชั้นเรียน และ วัตถุ ก่อนอื่นเราต้องกำหนดสิ่งที่พวกเขาอยู่ในบริบทของการเขียนโปรแกรม ก ระดับ เป็นแบบจำลองหรือแม่แบบที่แสดงลักษณะและการดำเนินการของคอลเลกชันของ วัตถุ . หนึ่ง วัตถุ ถูกสร้างขึ้นเป็นตัวอย่างของ ระดับ เมื่อหน่วยความจำถูกจัดสรรและสถานะเริ่มต้นเมื่อรันไทม์ ชั้นเรียน และ วัตถุ เป็นองค์ประกอบสำคัญในภาษาการเขียนโปรแกรมเชิงวัตถุแบบคลาสสิก เช่น Java, C++ หรือ C# ที่สนับสนุนความหลากหลาย การสืบทอด และการห่อหุ้ม

โครงสร้างใน Golang

ใน ไปชั้นเรียน จะถูกแทนที่ด้วยชนิดข้อมูลที่ผู้ใช้กำหนดเองซึ่งเรียกว่า โครงสร้าง เหล่านี้ โครงสร้าง รวมองค์ประกอบหรือคุณสมบัติหลายอย่างเข้าด้วยกัน และอนุญาตให้รวมเมธอด – ฟังก์ชันที่ทำงานบนอินสแตนซ์ของ โครงสร้าง ในขณะที่ โครงสร้าง แบ่งปันความคล้ายคลึงกันบางอย่างกับ ชั้นเรียน เช่นการสืบทอดและส่วนต่อประสานก็มีความแตกต่างที่น่าสังเกตเช่นกัน ตัวอย่างเช่น ไป ไม่มีคอนสตรัคเตอร์ ซึ่งเป็นเมธอดเฉพาะที่เริ่มต้นสถานะของอ็อบเจกต์เมื่อสร้าง ดังที่พบได้ทั่วไปในภาษาแบบคลาส







อินเตอร์เฟสใน Golang

ไป มีแนวคิดที่เหมือน วัตถุ : อินเทอร์เฟซ . หนึ่ง อินเตอร์เฟซ เป็นชุดของวิธีการที่อธิบายลักษณะการทำงานหรือการทำงาน แต่ไม่มีการระบุวิธีดำเนินการ อินเทอร์เฟซ ให้วิธีการบรรลุความหลากหลายใน ไป อนุญาตให้ใช้ประเภทต่างๆ แทนกันได้หากเป็นไปตามข้อกำหนดของอินเทอร์เฟซ นี่เป็นแนวคิดที่มีประสิทธิภาพที่ช่วยให้ ไป เพื่อให้ได้ความยืดหยุ่นและความสามารถในการขยายระดับสูงโดยไม่สูญเสียประสิทธิภาพหรือความเรียบง่าย



การใช้โครงสร้างและอินเทอร์เฟซใน Golang

ตัวอย่างต่อไปนี้แสดงให้เห็นถึงการใช้ โครงสร้าง และ อินเทอร์เฟซ ใน ไป .



แพคเกจหลัก
นำเข้า 'เอฟเอ็มที'

ประเภทมนุษย์ โครงสร้าง {
สตริงชื่อ
}

ประเภท คนทำงาน โครงสร้าง {
มนุษย์
สตริงงาน
}

ฟังก์ชั่น ( h มนุษย์ ) ข้อมูล ( ) {
เอฟเอ็มที พิมพ์ฉ ( 'ฉันคือ %s \n ' , ชม. ชื่อ )
}

ฟังก์ชั่น ( ว. คนงาน ) ข้อมูล ( ) {
เอฟเอ็มที พิมพ์ฉ ( 'ฉันเป็น %s ฉันเป็น %s \n ' , ใน. ชื่อ , ใน. งาน )
}

พิมพ์อินเทอร์เฟซบุคคล {
ข้อมูล ( )
}
ฟังก์ชั่นหลัก ( ) {
จอห์น := คนงาน { มนุษย์ { 'จอห์น' } , 'คนงาน' }
โด := มนุษย์ { 'โด' }

จอห์น. ข้อมูล ( )
โด ข้อมูล ( )

อยู่ในบุคคล

ฉัน = จอห์น
ฉัน. ข้อมูล ( )

ฉัน = โด
ฉัน. ข้อมูล ( )
}

เราได้สร้างสอง โครงสร้าง , มนุษย์ และ คนงาน ในรหัสด้านบน ฟังก์ชันที่พิมพ์ข้อความจะถูกสร้างขึ้น เดอะ โครงสร้าง ถูกเรียกใน หลัก () ฟังก์ชันของ บุคคล อินเตอร์เฟซ . เราจะเห็นได้ว่า ข้อมูล วิธีการได้รับการดำเนินการโดยทั้ง คนงาน และ มนุษย์ ดังนั้นตัวแปร i ที่มีประเภท บุคคล อินเทอร์เฟซจะทำงานได้อย่างถูกต้องและพิมพ์เอาต์พุต





เอาต์พุต



ไป มีแนวทางที่ไม่เหมือนใคร การห่อหุ้ม . การห่อหุ้ม สำเร็จในการเขียนโปรแกรมเชิงวัตถุทั่วไปโดยทำให้ฟิลด์เป็นส่วนตัวและทำให้สามารถเข้าถึงได้ด้วยวิธี getter และ setter ใน ไป , การห่อหุ้ม ทำได้โดยใช้ชื่อฟิลด์ตัวพิมพ์เล็กซึ่งมองเห็นได้ภายในแพ็คเกจเดียวกันเท่านั้น กลยุทธ์นี้ตรงไปตรงมาและชัดเจนมากขึ้น ซึ่งทำให้ง่ายต่อการทำความเข้าใจว่าโค้ดทำงานอย่างไร และลดความเป็นไปได้ที่จะเกิดผลข้างเคียงที่คาดไม่ถึง

ไป ให้รูปแบบที่เรียบง่ายของ ความหลากหลาย . การเขียนโปรแกรมเชิงวัตถุมีคุณสมบัติที่เรียกว่า ความหลากหลาย ที่ช่วยให้วัตถุจากคลาสต่าง ๆ ได้รับการปฏิบัติเสมือนเป็นอินสแตนซ์ของคลาสเดียวกัน ไป ไม่ได้จัดเตรียมการสืบทอดตามคลาสทั่วไป แต่รองรับอินเตอร์เฟส ซึ่งสามารถใช้เพื่อระบุชุดของเมธอดที่ struct ต้องนำไปใช้ ไป ยังมีการยืนยันประเภทซึ่งช่วยให้โปรแกรมเมอร์ตรวจสอบเนื้อหาของตัวแปรอินเทอร์เฟซและรับค่าที่เป็นรูปธรรม

บทสรุป

ไป ไม่มี ชั้นเรียน หรือ วัตถุ ในความหมายคลาสสิก แทนที่จะใช้ โครงสร้าง และ อินเทอร์เฟซ ซึ่งมีฟังก์ชันที่เทียบเคียงได้ด้วยวิธีที่ตรงไปตรงมาและน้ำหนักเบากว่า ไป ได้รับความนิยมในหมู่นักพัฒนาที่ให้ความสำคัญกับความเรียบง่าย อ่านง่าย และประสิทธิภาพ โดยใช้หลักปรัชญาและไวยากรณ์ที่แตกต่างกัน แม้ว่าจะทำความคุ้นเคยกับ ไป วิธีการอาจใช้เวลาสักครู่ คุณสมบัติที่โดดเด่นและการออกแบบส่งผลให้โค้ดมีประสิทธิภาพและบำรุงรักษาได้มากขึ้น