2009-10-28 44 views

回答

17

不。他們的服務完全符合您的描述,我認爲它們是使用得太少的語言的一個很好的功能。另一方面,每當我發現自己在思考標籤的使用時,我也會發現自己想知道我的代碼是否需要重構一些東西。

+1

在大多數情況下,我認爲的代碼是與使用標籤更清晰。重寫代碼以使其不再使用它們通常會導致多行額外的代碼。 – Geo 2009-10-28 09:33:13

+2

有時候會,但有時候並不會。我總是選擇易於閱讀和理解的代碼。有時候這就是使用標籤的代碼。 – innaM 2009-10-28 09:44:09

+2

Perl最佳實踐支持標籤。我不同意所有的PBP,但我認爲這是它的一個很好的建議。如果沒有別的,它們將作爲文檔。 – hobbs 2009-10-28 10:19:30

12

使用帶有next,lastredo的標籤很好,但您應該暫停以考慮代碼結構是否是最好的。根據我的經驗,除了封閉循環之外,您很少需要使用這些運算符(這意味着您不需要使用標籤)。我們強烈建議您不要使用goto LABEL

8

通常沒有理由使用goto LABEL

例如:

my $i = 10; 
Label: 
# ... 
goto Label if --$i; 

不如寫成:

my $i = 10; 
{ 
    # ... 
    redo if --$i; 
} 

我能想到的使用標籤的唯一原因,是打出來的多個循環,或繼續外部循環。

my $i = 10; 
OUTER: while(1){ 
    # ... 
    while(1){ 
    # ... 
    last OUTER unless --$i; 
    } 
} 
my $i = 10; 
OUTER: { 
    # ... 
    { 
    # ... 
    redo OUTER if --$i; 
    } 
} 
相關問題