tedis 라이브러리의 소스코드인데
왜 exists 메서드가 저렇게 생긴거임?
왜 exists(key: string, ...keys: string[]) 으로 되있는지 이유가 있을까?
나는 exists(...keys:string[]) 으로 하는게 더 좋은거같은데
왜냐하면 exists 함수에 배열을 넣는다는 상황을 가정해봐
지금대로라면
let arr = ['hi', 'hello', 'wow'];
exists(arr[0], ...arr.slice(1));
이렇게 짜야함
근데 내가생각한걸로하면 바로 exists(arr) 이렇게 호출할수가잇을텐데
왜 굳이 저런방식을 쓴걸까?? 내가생각못한무언가다른게잇는건가??
요소가 하나여도 []로 감싸야 하잖나
아닌가
안감싸도 문제없는데
왜 저렇게 햇는지는 잘몰갯는데(잘몰라서) exists(...arr) 이렇게 넘겨줘도 되긴 할걸
오류남 첫번째파라미터의 타입은 string[]이 아닌 string이러고
엥
헉 진자네
api 보니깐 배열로 안넘기고 그냥"key", "key2", key3" 이렇게 넘길려고 쓰네
근데 배열로 넘겨야할상황도 분명히잇을텐데.. 내코드도그런상황이라
님은 앞에 ...붙여서 함수 호출하면 됨
여러키 넣는건 3.0.3부터 추가되서 구버전 호환성때문에 그런듯
나도 호환성때문에그런가 싶었는데 ...keys:string[] 으로 해도 기존코드 문제없이 잘 작동하지않음? 뭔가 차이가 잇나?
아니 exists(...arr) 이게 작동이 안됨 컴파일에러
그렇게 하면 기존코드가 오류남
어떤상황에서 기존코드에서 오류가나는지자세히알려줄수잇어?? 내가테스트해보기로는 똑같이작동하는거같아서
기존코드에서 exists("key") 이렇게 쓰고 있는게 너처럼 바꾸면 당빠에러지
바꿔도 exists("key") 에서 오류가 안난다니까
아 착각함 ㅈㅅㅎㅎ
인자가 한 개 이상은 무조건 필요하도록 하려고 아님?? 타스 모르는 자바 유저임
그런가? 그럼 한개들어왓을때 예외던지지
이게 자바에서도 ...배열 처리 시 권장하는 패턴이거든 아마 저것도 해당되는 얘기같어 주석 0.5초 봤는데 first param 이 얘기만 있고 다른 의미는 없는거 보니ㅇㅇ 타스도 string[]만 보내도 empty인지 확인하는 과정 처리해야하지 않음?
맞아 보니까 keys나 key가 null인지 확인하는 코드도 없네
헉 오
이게맛다 굿굿