"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > هل يؤثر تقييم الدائرة القصيرة لـ Go على الأداء في البيانات الشرطية؟

هل يؤثر تقييم الدائرة القصيرة لـ Go على الأداء في البيانات الشرطية؟

تم النشر بتاريخ 2024-12-22
تصفح:162

Does Go's Short-Circuit Evaluation Impact Performance in Conditional Statements?

تقييم الدائرة القصيرة في Go

في البرمجة، تقييم الدائرة القصيرة هو أسلوب حيث يتم تقييم التعبير فقط إذا كان من الضروري تحديد نتيجة البيان المحيط . يستخدم هذا غالبًا في العبارات الشرطية، حيث يكون تقييم الشروط المتعددة غير ضروري إذا كان الشرط السابق خاطئًا بالفعل.

يطبق Go تقييم الدائرة القصيرة للعوامل المنطقية (&& و ||)، على غرار العديد من البرامج الأخرى اللغات. هذا يعني أنه في عبارة if، سيقوم المترجم بتقييم الشروط من اليسار إلى اليمين ويتوقف بمجرد معرفة النتيجة.

فيما يتعلق بأمثلة التعليمات البرمجية المقدمة، فإن ترتيب تقييم الشروط لا يؤثر على أداء البرنامج. في Go، سيتصرف كلا مقتطفي التعليمات البرمجية بنفس الطريقة. سيقوم المترجم بتقييم التعبيرات من اليسار إلى اليمين وقصر دائرة التقييم بمجرد تحديد النتيجة.

لتوضيح ذلك، ضع في اعتبارك الكود التالي:

package main

import "fmt"

func main() {
    var r *http.Request
    queries := make(map[string][]string)

    if r == nil || len(queries) == 0 || !isValidQueryParams(&queries) {
        fmt.Println("Invalid querystring")
    }
}

على الرغم من أن isValidQueryParams يحتوي على حمل أكبر من r == nil وlen(queries) == 0، سيقوم المترجم بتقييم التعبيرات بالترتيب ودائرة قصر بمجرد أن تكون النتيجة واضحة. ولذلك، لا يوجد فرق في الأداء بين مقتطفي الشفرة في المثال الخاص بك.

أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3