일부 펄 함수에서는 다양한 형식의 인수로 작업 할 수 있고 다르게 처리 할 수 있기를 원합니다. 이제이 ref
함수를 사용하고 ref
결과를 기반으로 코드의 적절한 부분을 실행합니다.Perl - 다양한 데이터 형식을 받아들이는 함수를 만드는 방법
sub method_that_accept_various_data_types(){
if (ref $_[0] eq "ARRAY"){
# ...
}
elsif (ref $_[0] eq "SCALAR"){
# ...
}
elsif (ref $_[0] eq "HASH"){
# ...
}
}
내 모든 기능이 패턴을 따라야 또는 내 모든 서브 루틴의 시작 부분에 언급 한 코드를 사용할 필요가 말할 수있는 몇 가지 우아한 방법이 있나요? 나는 절차 적 코드를 작성 중이고 비슷한 것은 OOP의 다형성과 상속이지만이 분야의 초보자입니다.
모든 대답은 새로 생성 된 모든 기능에 코드를 추가해야합니다. 새로운 기능에 코드를 추가 할 필요없이 지금부터 정의 된 모든 기능에 대해이를 수행하는 일반적인 방법이 있는지 묻습니다.
는
본질적으로 버그가있는 기능을 수행하지 마십시오. – ikegami
왜 그런가요? 더 자세하게 얘기해 주 시겠어요? –
뭔가 해시 및 배열 (등) 수 있기 때문에. 여러 함수를 제공하고 싶지 않다면, 다형성을 인수의 수 또는 인수의 이름에 기반하십시오 ('foo => $ foo' 인수를 사용하는 경우). – ikegami