تعريف أنواع مخصصة
جزء من قسم Fundamentals في رحلة GO على Coddy — الدرس 94 من 109.
في لغة Go، يمكنك إنشاء أنواع مخصصة خاصة بك بناءً على أنواع موجودة. هذا يمنح الكود الخاص بك مزيداً من الوضوح وأمان الأنواع (type safety).
قم بتعريف نوع مخصص لدرجة الحرارة بالدرجة المئوية:
type Celsius float64
func main() {
var temperature Celsius = 25.5
fmt.Printf("Temperature: %.1f°C\n", temperature)
}تُظهر النتيجة قيمة درجة الحرارة:
Temperature: 25.5°Cتتصرف الأنواع المخصصة مثل أنواعها الأساسية ولكن يتم التعامل معها كأنواع منفصلة من قبل المترجم، مما يحسن من قابلية قراءة الكود ويمنع الأخطاء المنطقية.
التحدي
مبتدئفي هذا التحدي، ستتدرب على تعريف نوع مخصص في Go. تسمح لك الأنواع المخصصة بإنشاء أنواع بيانات خاصة بك بناءً على الأنواع الموجودة.
مهمتك هي تعريف نوع مخصص يسمى Temperature يعتمد على float64، ومن ثم إنشاء متغير من هذا النوع.
بعد تعريف النوع، يجب أن يقوم البرنامج بطباعة قيمة ونوع متغير درجة الحرارة.
ورقة مرجعية
أنشئ أنواعًا مخصصة في Go باستخدام الكلمة المفتاحية type:
type Celsius float64تعتمد الأنواع المخصصة على أنواع موجودة ولكن يعاملها المترجم (compiler) كأنواع متميزة:
type Celsius float64
func main() {
var temperature Celsius = 25.5
fmt.Printf("Temperature: %.1f°C\n", temperature)
}تعمل الأنواع المخصصة على تحسين قابلية قراءة الكود وتوفر أمان النوع (type safety) بينما تتصرف مثل أنواعها الأساسية.
جرّب بنفسك
package main
import "fmt"
// TODO: قم بتعريف نوع مخصص يسمى 'Temperature' بناءً على float64
func main() {
// إنشاء متغير من النوع Temperature بقيمة 23.5
var roomTemp Temperature = 23.5
// طباعة قيمة ونوع roomTemp
fmt.Printf("Room temperature: %v\n", roomTemp)
fmt.Printf("Type of roomTemp: %T\n", roomTemp)
}يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس Fundamentals
4معاملات المقارنة والمعاملات المنطقية
معاملات المقارنة - الجزء 1معاملات المقارنة - الجزء 2معامل AND المنطقيمعامل OR المنطقيمعامل NOT المنطقيأساسيات أولوية المعاملاتملخص - إجراء المقارنات7تدفق التحكم: الحلقات التكرارية
شرح حلقة `for`حلقة `for` - أساسياتحلقة `for` - بشرط فقطالكلمة المفتاحية `break`الكلمة المفتاحية `continue`الحلقات المتداخلةملخص - تكرار العمليات10الأنواع المركبة: المصفوفات
مقدمة إلى المصفوفاتالتصريح عن المصفوفاتتهيئة المصفوفاتالوصول إلى عناصر المصفوفةطول المصفوفة باستخدام `len`التكرار عبر المصفوفاتالمصفوفات متعددة الأبعاد13الأنواع المركبة: Structs
تعريف أنواع مخصصةإنشاء نماذج من الـ Structsالوصول إلى حقول الـ Structالمؤشرات إلى الـ Structsتهيئة الـ Structsالـ Structs المضمنةالـ Structs المجهولةمراجعة - هياكل البيانات المخصصة2المتغيرات وأنواع البيانات الأساسية
ما هو المتغير؟استنتاج النوع باستخدام `:=`الأعداد الصحيحة (int)أرقام الفاصلة العائمةالقيم المنطقية (Booleans)النصوص (Strings)القيم الصفريةالثوابتقواعد التسميةملخص - المتغيرات والأنواع5الإدخال والإخراج الأساسي
المخرجات المنسقةرموز التنسيقطباعة الأنواعالحصول على مدخلات المستخدم الأساسيةملخص - الإدخال والإخراج8الدوال
فهم الدوالالتصريح عن دالةاستدعاء الدوالمعاملات الدالةإرجاع قيمة واحدةإرجاع قيم متعددةقيم الإرجاع المسماةأساسيات نطاق الدالةملخص - إنشاء كود قابل لإعادة الاستخدام3المعاملات الأساسية
المعاملات الحسابيةمعامل القسمةمعامل باقي القسمةمعامل التعيينمعاملات التعيين المركبةالزيادة والنقصانملخص - الحسابات6تدفق التحكم: الجمل الشرطية
جملة `if`الكلمة المفتاحية `else`الكلمة المفتاحية `else if`تظليل المتغيرات في `if`تهيئة المتغيراتجملة `switch``switch` مع التعبيرات`switch` بدون تعبيرالكلمة المفتاحية `fallthrough`ملخص - اتخاذ القرارات