Nie rozumiem, dlaczego Java [String.substring() metoda] (http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html#substring(int,%20int%29) jest określony tak, jak jest.Nie mogę powiedzieć, aby zacząć od pozycji numerowanej i zwrócić określoną liczbę znaków, muszę obliczyć I jeśli określę pozycję końcową poza końcem String, zamiast tylko zwrócić resztę String dla mnie, Java zgłasza wyjątekJak działa ciąg substring()?
Jestem przyzwyczajony do języków, w których podciągu() (lub substr()) przyjmuje dwa parametry: pozycję początkową i długość.Czy to jest obiektywnie lepsze niż sposób, w jaki robi to Java, a jeśli tak, to czy możesz to udowodnić? Jaka jest najlepsza specyfikacja języka dla substring(), którą masz widzisz, a kiedy jest to dobry pomysł, aby język robił różne rzeczy? Czy to wyjątek IndexOutOfBoundsException, że Java rzuca dobry pomysł na projekt, czy nie? Czy to wszystko sprowadza się do osobistych preferencji?
to rzeczywiście kwestia osobistych preferencji, co czyni ten "Subiektywny i argumentujący". Potrzebuję zarówno "długości", jak i "pozycji końcowej" smaków podłoży w różnym czasie, więc dla mnie nie ma sensu mówić, że jeden jest "lepszy" od drugiego. –
Nie ma potrzeby dyskusji na ten temat tylko dlatego, że jest subiektywny. Do licha. Czy nie możemy rozmawiać o względnych zaletach decyzji językowych bez świętej wojny? Jeśli Jon Skeet uważa, że warto na nie odpowiedzieć i nie jest tylko wezwaniem do kłótni, z pewnością to coś znaczy? – skiphoppy
Jeśli zmienię go tak, by usunął słowa "zdziwienie" i "niedogodności", czy będzie mniej sprzeczny, skoro nikt się nie spiera? Czy pytania dotyczące projektowania języka (które w większości przypadków wiążą się z subiektywnym kompromisem) są nieodpowiednie dla Stack Overflow? – skiphoppy