Avatar ·

Rust में println! और अन्य macros में विस्मयादिबोधक चिह्न क्यों है?

सभी को नमस्ते! मैंने Rust सीखना सचमुच एक सप्ताह पहले शुरू किया है और मुझे एक प्रश्न का सामना करना पड़ा जो मुझे थोड़ा भ्रमित करता है। Rust में कंसोल पर आउटपुट करते समय हम `println!` को विस्मयादिबोधक चिह्न के साथ क्यों लिखते हैं? मैं Python, Java और C++ का आदी हूँ, जहाँ function calls हमेशा बिना विस्मयादिबोधक चिह्न के होती हैं, जैसे `print()`, `System.out.println()` या `std::cout <<`। मैंने उदाहरण देखे — हर जगह `println!("Hello, world!");` लिखा है। मैंने बस `println("Hello");` लिखने की कोशिश की — compiler ने error दी: ``` error[E0423]: expected function, found macro `println` --> src/main.rs:2:5 | 2 | println("Hello"); | ^^^^^^^ not a function ``` ऐसा क्यों है? क्या यह कोई विशेष function है? या यह भाषा की कोई विशेषता है? मैंने पढ़ा है कि Rust में macros होते हैं, लेकिन मैं पूरी तरह से नहीं समझता कि वे सामान्य functions से कैसे भिन्न हैं।