luasocket은 값이 루아 소켓 객체인지 여부를 알 수있는 방법을 제공하지 않는 것으로 나타났습니다.값이 루아 소켓 객체인지 확인하는 방법은 무엇입니까?
다른 소켓 개체 유형이 다른 메타 테이블을 가지기 때문에 메타 테이블을 비교하는 일반적인 방법은 작동하지 않습니다. metatable에 일치하는 값이없는 것 같습니다 (예 : 동일한 __tosting
메타 메서드)
그래서 : 보유한 값이 루아 소켓 객체인지 어떻게 알 수 있습니까?
luasocket은 값이 루아 소켓 객체인지 여부를 알 수있는 방법을 제공하지 않는 것으로 나타났습니다.값이 루아 소켓 객체인지 확인하는 방법은 무엇입니까?
다른 소켓 개체 유형이 다른 메타 테이블을 가지기 때문에 메타 테이블을 비교하는 일반적인 방법은 작동하지 않습니다. metatable에 일치하는 값이없는 것 같습니다 (예 : 동일한 __tosting
메타 메서드)
그래서 : 보유한 값이 루아 소켓 객체인지 어떻게 알 수 있습니까?
당신이 fua를 얻을 수 있도록 LuaSocket 객체인지를 알고 싶을뿐입니다. 객체가 getfd() 메소드를 가지고 있는지보기 만하면 안되는 이유는 무엇입니까? 이 보너스는 현재 LuaSocket뿐만 아니라 객체에이 메서드를 제공하는 현재 및 미래 라이브러리에서도 작동합니다.
이 기술은 'duck typing'으로 알려져 있습니다.
그렇지 않습니다. 일반적으로, 당신은 당신 자신의 종류의 일을 추적 할 것으로 예상됩니다. 당신은 당신이 지나가는 대상이 당신이 기대하는 것임을 믿습니다. 확실하지 않은 경우 항상 pcall
을 사용하여 함수를 호출하고 오류를 포착 할 수 있습니다.
필자는 무엇이 건간에 fd를 가져 오는 함수를 만들고 싶습니다. lua 파일 객체, luasocket 객체, libev 객체, apr 객체를 취합니다 ... 그리고 그 차이점을 말해야합니다. 어떤 루틴을 사용할지를 아는 것. – daurnimator
@daurnimator : "fd"란 무엇입니까? –
파일 디스크립터 http://en.wikipedia.org/wiki/File_descriptor – daurnimator
파일 메타 테이블 ; 그런 다음 getfd 메소드를 확인하십시오. 그때 오류 ... – daurnimator