Khi bạn đang gỡ lỗi, nó rất hữu ích để làm điều này:Làm cách nào để in tên biến và giá trị của tên mà không cần nhập tên hai lần?
var = calc()
print("var:", var)
Có bất kỳ ngôn ngữ nơi này rất dễ dàng để làm gì? Trong C và C++ bạn có thể sử dụng stringify vĩ mô điều hành # và trong Ruby Tôi tìm thấy câu hỏi này:
Ruby - print the variable name and then its value
Các giải pháp mà sử dụng một biểu tượng: var và một khối là những gì tôi muốn.
Trong D, tôi đã sử dụng này:
void trace(alias msg)() {
writeln(msg.stringof ~ ":" ~ to!string(msg));
}
Nhưng tôi không chắc đó là cách tốt nhất, bởi vì nó chỉ có tác dụng trong những trường hợp đơn giản. Tôi đã thử một số cách, nhưng đôi khi bạn có thể nhận được chuỗi, nhưng không phải là giá trị (vì biến nằm ngoài phạm vi), hoặc bạn phải trộn mẫu trước và sau đó gọi hàm.
Và còn các ngôn ngữ khác thì sao? Python? F #? Boo? Shell script (bất kể shell nào)? Perl? (Tôi thích tránh xa Perl, tho). Tcl? Lisp, Đề án? Java? (Java rất khó có thể làm được điều này).
Ngay cả trong các ngôn ngữ mà tôi tìm thấy một số loại giải pháp, nó chỉ hoạt động đối với các trường hợp đơn giản. Nếu tôi muốn in một biểu thức tùy ý thì sao?
Nếu tôi thiết kế một ngôn ngữ, tính năng này sẽ là một tính năng không thể thiếu. :-)
Tuyệt vời! Đó chính xác là những gì tôi cần! Cảm ơn! Các trích dẫn cần thiết là tinh tế, phải không? Quá xấu D không cho phép nội suy varName để làm cho nó trông sạch hơn. Tôi không nhớ đặt biểu thức bên trong một chuỗi (tôi có thể sử dụng q {} để có mã thông báo hiliting trong trình soạn thảo của tôi). Đối với verbosity, tôi có thể sử dụng một tên hàm rất ngắn :-) – marcus