البرمجة

Logging with Lambda Parameters in Kotlin

In Kotlin, you can achieve the same behavior as the Java example by using a lambda directly without the curly braces. This allows the lambda to be lazily evaluated, similar to how it works in Java. Here’s how you can do it:

kotlin
log.debug("random {}", { UUID.randomUUID() })

However, this will indeed print the lambda type, not its result. To print the result of the lambda, you need to explicitly invoke it:

kotlin
log.debug("random {}", { UUID.randomUUID() }())

This will print the random UUID generated by the lambda function.

المزيد من المعلومات

بالتأكيد! في Kotlin، يمكنك استخدام تعبير اللامبدا بدون إشارات التقويس {} لتحقيق نفس السلوك كما في المثال الذي ذكرته من log4j2. هذا يسمح بتقييم التعبير بشكل كسول، مماثلاً لكيفية عمله في Java. هنا كيف يمكنك القيام بذلك:

kotlin
log.debug("random {}", { UUID.randomUUID() })

ومع ذلك، سيتم طباعة نوع التعبير اللامبدا، لا نتيجته. لطباعة نتيجة التعبير اللامبدا، يجب عليك استدعاءها بشكل صريح:

kotlin
log.debug("random {}", { UUID.randomUUID() }())

سيقوم هذا بطباعة الـ UUID العشوائي الذي تم إنشاؤه بواسطة دالة التعبير اللامبدا.

مقالات ذات صلة

زر الذهاب إلى الأعلى
إغلاق

أنت تستخدم إضافة Adblock

يرجى تعطيل مانع الإعلانات حيث أن موقعنا غير مزعج ولا بأس من عرض الأعلانات لك فهي تعتبر كمصدر دخل لنا و دعم مقدم منك لنا لنستمر في تقديم المحتوى المناسب و المفيد لك فلا تبخل بدعمنا عزيزي الزائر