2013-06-17 31 views
5

tôi thấy như sau trong một kịch bản Tcl:Peculiar Tcl cú pháp

If { <some_condition> } { 
    // code here... 
} { 
    // code here... 
} 

Tôi giả định này là một trường hợp đặc biệt của if-else cú pháp? Chỉ muốn nhận được xác nhận.

+0

BTW '//' không bắt đầu nhận xét trong tcl. trên thực tế nó là một lỗi cú pháp. Không phải để nitpick nhưng những người khác có thể có được ý tưởng sai lầm. ... sử dụng # thay vì – Cjolly

Trả lời

8

Đây thực sự chỉ là một biến thể trên cú pháp if - else; các else là tùy chọn (như là then, mà hầu như tất cả mọi người bỏ qua nhưng tôi muốn sử dụng khi tôi có một biểu thức nhiều dòng trước khi nó). Bạn nên bao gồm nó vì ít hơn trực quan khó hiểu, nhưng bạn không cần nó.

duy nhất “từ khóa” trong if cú pháp mà là bắt buộc là if (bạn có thể rename đó, nhưng nó sẽ phá vỡ tất cả các loại của sự vật) và elseif (để kiểm tra tình trạng thêm).

+1

Luôn chờ câu trả lời có thẩm quyền của bạn khi tôi có câu hỏi Tcl: P – czchlong

+0

@czchlong Tôi làm _not_ luôn có câu trả lời! (Và đôi khi tôi phải ngủ hoặc làm việc ...) –

3

Từ if(n) manpage:

nếuexpr1? rồi? body1elseifexpr2? rồi? body2elseif ...? else? ? bodyN?

?else? được sử dụng trong tài liệu tcl để cho biết đối số là tùy chọn. Hơn nữa, nó rõ ràng hơn nói:

Các sau đókhác luận là những từ tiếng ồn tùy chọn để làm cho lệnh dễ đọc hơn.