مسح الإدخال
اقرأ الإدخال المنسّق
مسح الإدخال درس مجاني في Go Academy على CoddyKit. هذا هو الدرس 4 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Go Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Go Academy 4 دروس في المجموع.
قراءة الإدخال باستخدام fmt
يمكن لحزمة fmt قراءة القيم، لا طباعتها فحسب. إذ تحلل دوال القراءة النص وتحوله إلى متغيرات ذات أنواع محددة.
وهي تمثل النظير المقابل لدوال الطباعة.
package main
import "fmt"
func main() {
var n int
fmt.Sscan("42", &n)
fmt.Println(n + 1)
}المؤشرات مطلوبة
يجب أن تخزّن دوال القراءة النتيجة، لذلك مرّر عنوان كل متغير باستخدام &.
إن نسيان & هو أكثر أخطاء القراءة شيوعًا.
package main
import "fmt"
func main() {
var a, b int
fmt.Sscan("3 4", &a, &b)
fmt.Println(a + b)
}تقسم Sscan عند المسافات
تقرأ fmt.Sscan القيم المفصولة بمسافات من سلسلة نصية إلى عدة متغيرات، وتستنتج النوع من كل مؤشر.
package main
import "fmt"
func main() {
var name string
var age int
fmt.Sscan("Ada 36", &name, &age)
fmt.Println(name, age)
}تستخدم Sscanf تنسيقًا
تحلل fmt.Sscanf النص وفقًا لسلسلة تنسيق، تمامًا مثل Printf ولكن بالعكس. ويجب أن تتطابق الأحرف الحرفية في التنسيق مع الإدخال.
package main
import "fmt"
func main() {
var h, m int
fmt.Sscanf("09:05", "%d:%d", &h, &m)
fmt.Println(h, m)
}التحقق من عدد القيم المقروءة
تعيد دوال القراءة عدد العناصر التي حُللت بنجاح وخطأً. تحقّق من العدد لمعرفة ما إذا نجح التحليل بالكامل.
package main
import "fmt"
func main() {
var a, b int
count, _ := fmt.Sscan("7", &a, &b)
fmt.Println("parsed:", count)
}معالجة أخطاء التحليل
إذا لم يطابق الإدخال النوع المتوقع، فسيُعاد خطأ. افحصه دائمًا عند التعامل مع إدخال حقيقي.
package main
import "fmt"
func main() {
var n int
_, err := fmt.Sscan("notanumber", &n)
if err != nil {
fmt.Println("error:", err)
}
}تحليل أنواع مختلطة
يمكنك قراءة عدة أنواع مختلفة في استدعاء واحد. ويحدد نوع كل مؤشر كيفية تحليل الرمز الخاص به.
package main
import "fmt"
func main() {
var word string
var price float64
var ok bool
fmt.Sscan("apple 1.50 true", &word, &price, &ok)
fmt.Println(word, price, ok)
}استخدام Sscanf مع نص حرفي
تُعد Sscanf مناسبة جدًا للأشكال الثابتة، مثل الإحداثيات أو أزواج المفتاح والقيمة، حيث تفصل علامات الترقيم بين الأعداد.
package main
import "fmt"
func main() {
var x, y int
fmt.Sscanf("(3,8)", "(%d,%d)", &x, &y)
fmt.Println(x, y)
}قراءة الأعداد العشرية
استخدم %f في Sscanf أو *float64 في Sscan لقراءة الأعداد العشرية.
package main
import "fmt"
func main() {
var temp float64
fmt.Sscanf("21.5C", "%fC", &temp)
fmt.Println(temp)
}Scan مقارنةً بـ Stdin
تقرأ fmt.Scan وfmt.Scanf من الإدخال القياسي بالطريقة نفسها التي تقرأ بها Sscan من سلسلة نصية. وقواعد التحليل متطابقة؛ والاختلاف الوحيد هو المصدر.
package main
import "fmt"
func main() {
line := "100 200"
var a, b int
fmt.Sscan(line, &a, &b)
fmt.Println(a * b)
}محلل صغير
اجمع بين القراءة والحساب لتحليل سجل وإنتاج نتيجة.
package main
import "fmt"
func main() {
var name string
var qty int
var unit float64
fmt.Sscanf("pen 3 1.25", "%s %d %f", &name, &qty, &unit)
fmt.Printf("%s total: $%.2f\n", name, float64(qty)*unit)
}تحقق سريع
ما الذي يجب تمريره إلى دالة قراءة لتخزين النتيجة؟
مراجعة: قراءة الإدخال
تعلّمت قراءة الإدخال المنسّق:
- تقسم
Sscanالإدخال عند المسافات البيضاء؛ وتتبعSscanfسلسلة تنسيق. - مرّر مؤشرات باستخدام
&لكل هدف. - تحقّق من العدد والخطأ المُعادَين لاكتشاف الإدخال غير الصحيح.
package main
import "fmt"
func main() {
var d, mo, y int
fmt.Sscanf("30/05/2026", "%d/%d/%d", &d, &mo, &y)
fmt.Println(y, mo, d)
}تعلم Go مع معلم ذكاء اصطناعي — مجانًا
اكتب وقم بتشغيل أكوادك الفعلية في المتصفح، واحصل على مساعدة فورية من معلم ذكاء اصطناعي متاح 24/7، واستمر من حيث توقفت على الويب أو في التطبيق.
- الدورات
- 51
- الدروس
- 203
الأسئلة الشائعة
هل درس «مسح الإدخال» مجاني؟
نعم — نص درس «مسح الإدخال» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Go Academy، انتقل إلى CoddyKit PRO. تتضمن دورة Go Academy 4 دروس في المجموع.
ماذا ستتعلم في «مسح الإدخال»؟
اقرأ الإدخال المنسّق تتمرن على Go Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ Go Academy؟
لا تُشترط خبرة سابقة. Go Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 4 من أصل 4.
كم من الوقت يستغرق درس «مسح الإدخال»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس Go Academy هذا؟
نعم. كل درس في Go Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.