그냥 값이 있거나 없는게 optional임. 그러니까 null일수도 아닐수도 있는거랑 비슷함
다믜(damhiya)2019-12-12 20:02
답글
근데 null은 null체킹을 강요를 안하고 optional은 반드시 값을 검사해야됨
다믜(damhiya)2019-12-12 20:02
답글
그리고 null쓰면 그 값이 null일 수도 있는지 항상 null이 아닌 값인지 구별이 안되서 답없음
다믜(damhiya)2019-12-12 20:03
답글
아 optional이라는 클래스가 따로 있었네 ㅋㅋㅋㅋ 뉴비가 또
익명(175.212)2019-12-12 20:06
문맥에 따라 다른데 API 따라 다르고, C# 기준으로 말하면.. null만 달랑 던지는것도 문제고, TryGetValue같이 값을 받아왔는지릉 받늠 bool하나를 따로 두거나 GetValueOrDefault같이 자기가 없으면 default(=null) 값을 돌려준다고 보통 이름에서 명시해줌. Index 넘거나 Key가 없는데 그냥 access해서 쓸려고
ns(qwer2357)2019-12-12 21:05
한다거나 하면 예외던지는게 맞다고 보고. 아니면 위에처럼 그냥 어떤 Wrapper class에 싸서 그 결과코드에 해당하는거랑 같이 돌려주는거 (예를들면 FileDialogBox면 DialogueResult에 Value와 결과코드 Enum을 함께 넣은 결과로 돌려주고.. 물론 대충 할땐 null 줘도 되는데 표준패턴은 보통 C#은 그러니 Java도 비슷할거
ns(qwer2357)2019-12-12 21:09
답글
만약 이름이 붙은 리스트들을 모아놓은 자료구조가 있는데 여기에서 getListByName(String name)을 한다면 뭐가 가장 나아보이십니까 형님
익명(175.212)2019-12-12 21:10
답글
그 이름이 사실상 Compile time에 결정되는 이름이라 하나의 버전에선 안바뀔상황이면 예외를 던지고, 안그러면 null이 아니라 empty list를 돌려줄듯.. null이 속도가 빠르다 생각할수 있는데 자바같은 언어는 그거 생각하는 언어가 아니라고 생각해
ns(qwer2357)2019-12-12 21:13
답글
뭐 List가 query의 결과라고 생각해서 말한건데, 그런게 아니라 진짜 객체 List들을 dictionary로 관리하는거면 GetListByNameOrDefault() 같이 만들고 null돌려줄거같음. C#은 뒤에 OrDefault하면 null check하란 의미가 고정돼있늠데 Java는 다른 컨벤션이 있을지도 있으니 그건 확인해보고..
ns(qwer2357)2019-12-12 21:17
답글
감사합니다 선생님
익명(175.212)2019-12-12 21:18
지나가던 씨플놈인데 값이 없는 경우가 거의 없고 값이 없다는 건 프로그램 버그다 싶으면 익셉션 쓰고, 값이 없을 수 있으면 optioanl이 좋지.
지나가느 하스켈러인데 null 리턴하는 게 맞다고 생각합니다
감사합니다
Optional
이거야말로 optional이 적격인데 실제 제일 흔하게 쓰냐 하면 아닌 듯
optional이 베스트인데 익셉션이 제일 최악임
optional이 값 하나 더 받고 없으면 그거 리턴하는거 맞음?
어 맞긴한데 너무 복잡하게 생각하고 있는데 ㅋㅋㅋ
그냥 값이 있거나 없는게 optional임. 그러니까 null일수도 아닐수도 있는거랑 비슷함
근데 null은 null체킹을 강요를 안하고 optional은 반드시 값을 검사해야됨
그리고 null쓰면 그 값이 null일 수도 있는지 항상 null이 아닌 값인지 구별이 안되서 답없음
아 optional이라는 클래스가 따로 있었네 ㅋㅋㅋㅋ 뉴비가 또
문맥에 따라 다른데 API 따라 다르고, C# 기준으로 말하면.. null만 달랑 던지는것도 문제고, TryGetValue같이 값을 받아왔는지릉 받늠 bool하나를 따로 두거나 GetValueOrDefault같이 자기가 없으면 default(=null) 값을 돌려준다고 보통 이름에서 명시해줌. Index 넘거나 Key가 없는데 그냥 access해서 쓸려고
한다거나 하면 예외던지는게 맞다고 보고. 아니면 위에처럼 그냥 어떤 Wrapper class에 싸서 그 결과코드에 해당하는거랑 같이 돌려주는거 (예를들면 FileDialogBox면 DialogueResult에 Value와 결과코드 Enum을 함께 넣은 결과로 돌려주고.. 물론 대충 할땐 null 줘도 되는데 표준패턴은 보통 C#은 그러니 Java도 비슷할거
만약 이름이 붙은 리스트들을 모아놓은 자료구조가 있는데 여기에서 getListByName(String name)을 한다면 뭐가 가장 나아보이십니까 형님
그 이름이 사실상 Compile time에 결정되는 이름이라 하나의 버전에선 안바뀔상황이면 예외를 던지고, 안그러면 null이 아니라 empty list를 돌려줄듯.. null이 속도가 빠르다 생각할수 있는데 자바같은 언어는 그거 생각하는 언어가 아니라고 생각해
뭐 List가 query의 결과라고 생각해서 말한건데, 그런게 아니라 진짜 객체 List들을 dictionary로 관리하는거면 GetListByNameOrDefault() 같이 만들고 null돌려줄거같음. C#은 뒤에 OrDefault하면 null check하란 의미가 고정돼있늠데 Java는 다른 컨벤션이 있을지도 있으니 그건 확인해보고..
감사합니다 선생님
지나가던 씨플놈인데 값이 없는 경우가 거의 없고 값이 없다는 건 프로그램 버그다 싶으면 익셉션 쓰고, 값이 없을 수 있으면 optioanl이 좋지.