私はこの答えを読んでいた question とstd::string
のlength()
というメソッドが実際にあることがわかった(私はいつもsize()
を使っていた)。 std::string
クラスにこのメソッドがある特定の理由はありますか? MSDNとCppRefernceの両方を読みましたが、それらはsize()
とlength()
の間に違いがないことを示しているようです。そうだとすれば、クラスのユーザーにとって混乱を招かないでしょうか?
ドキュメント に従って、これらは単なる同義語です。 size()
は他のSTLコンテナ(vector
、map
、etc。など)と一貫性があり、length()
はほとんどの人々の直感的な概念と一貫性があります文字列。人々は通常、そのサイズではなく、単語、文、または段落のlengthについて話すので、物を読みやすくするためにlength()
があります。
Rubyはまったく同じですが、配列とハッシュ内のアイテム数の同義語として#length
and#size
の両方を提供します(C++は文字列に対してのみ行います)。
ミニマリストと「1つであることが理想的で、理想的には1つだけで、それを行う明白な方法」(Pythonの禅が唱えるように)は、あなたの疑いにほとんど同意するでしょう、@ Naveen 、Perlの「それを行う方法は複数あります」(または、1つの概念を表現するための多数のまったく同じ等価な構文形式を与える膨大なオプションの「ノイズワード」を含むSQLの構文)のファンは、Ruby、特にC++そのような同義の冗長性を提供するだけでは十分ではありません;-)。