[英]Why would we need void return type from methods in OOP languages?
這並不是說我昨天開始學習Java,但我突然想到,為什么我們會使用void
方法,如果我們可以返回this
呢? 這樣我們可以在對象上鏈接方法調用並使代碼更具可讀性(我知道這種方法已經越來越受歡迎,但主要是使用不可變對象,讓我們忘記Java Beans約定)。 我認為void
的唯一情況是靜態方法。
大概你會接受一些方法需要告訴你一些東西 - 某種返回值。 我們會“返回我們想要返回的值,這似乎是人為的和遲鈍的,除非我們實際上不想返回任何東西,在這種情況下我們將返回this
,除非它是一個靜態方法,在這種情況下我們返回void
” 。
怎么樣:
另外:認為繼承; 如果我有一個虛方法Foo()
,那么返回類型必須是Foo
的聲明類型:
public virtual SomeType Foo() {...}
現在假設我使用Bar : SomeType
子類SomeType
,並且有一個Bar
實例:
Bar obj = new Bar();
obj.Foo().SomeOtherMethodOnBar(); // ERROR hey, where did my Bar go!?!?!
多態性不尊重流暢的API。
作為最后的想法:當你實際上不想鏈接方法時,想想所有的“流行音樂”......
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.