[英]When is implicit type declaration ever good?
我有個同事寫的是Fortran,一般都是按照F77的標准。 我不得不使用他們的一些源代碼,我發現使用隱式類型聲明(而不是使用implicit none
)確實令人困惑和沮喪。 他們這樣做的原因是“消除我程序開頭的所有類型聲明”。 在我看來,這是破壞程序及其許多子例程的可讀性和理解性的糟糕權衡。 在 Fortran 程序和子例程中是否有任何其他更有效的理由不包含implicit none
?
需要明確的是,許多人不贊成依賴隱式類型。 有充分的理由。 然而,在一種情況下,有些人可能認為隱式類型是兩害相權取其輕。
隱式類型允許一個人擁有一個 object,它是一種名稱在 scope 中不可訪問的類型:
implicit type(badexample) (d)
type badexample
integer :: neverever=4
end type badexample
call sub
contains
subroutine reallybad(badexample)
integer, optional :: badexample
! With the declaration above we can't declare a local variable of explicit
! type badexample:
! type(badexample) dontdothis
print*, dontdothis%neverever
end subroutine reallybad
end
真的,這是使用隱式類型的糟糕借口。 可以通過其他設計選擇避免的一種。
Fortran 77下,當然不能用implicit none
了。
當您的代碼是一堆不得丟棄或打亂順序的打孔卡時,減少行數的方法很有意義。 在現代,沒有理由使用隱式類型。
我有一個老同事,他不能被勸阻而不要使用隱式類型。 他聲稱,對大多數變量使用隱式類型,而僅對少數不遵循匈牙利符號的變量使用顯式類型,可以使這些變量更加突出,這有助於他更好地理解代碼。
使用注釋以提高可讀性。 這就是他們在那里的目的。
好吧,我使用了打孔卡,但我通常也在我的 Fortran 代碼中使用 implicit none。 然而,我現在的大部分 Fortran 編碼只是編寫數據的預處理器或后處理器。 人們現在使用的東西 python。 我知道 python 但我在 python 的編程技術不是很好。 因此,當您編寫 100-300 行代碼時,只有隱式 none 會很痛苦。 我使用它是為了讓人們不會取笑我,但對於簡短的實用程序代碼,隱含的沒有給你帶來什么好處。 恕我直言!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.