Ruby에서 왜 배열이 필요한지 Packing
? 어떻게합니까 directive
그러한 포장을하는 데 도움이됩니까?루비에서 pack() 및 unpack()은 어떻게 작동합니까?
내 콘솔에서 어떤 코드를 실행하여 배열 패킹에서 지시어가 어떻게 표시되는지 확인했습니다. 그러나 출력은 각 지시문과 거의 동일합니다. 그렇다면 그들은 어떻게 다른가?
irb(main):003:0> n = [ 65, 66, 67 ]
=> [65, 66, 67]
irb(main):004:0> n.pack("ccc")
=> "ABC"
irb(main):005:0> n.pack("C")
=> "A"
irb(main):006:0> n.pack("CCC")
=> "ABC"
irb(main):007:0> n.pack("qqq")
=> "A\x00\x00\x00\x00\x00\x00\x00B\x00\x00\x00\x00\x00\x00\x00C\x00\x00\x00\x00\
x00\x00\x00"
irb(main):008:0> n.pack("QQQ")
=> "A\x00\x00\x00\x00\x00\x00\x00B\x00\x00\x00\x00\x00\x00\x00C\x00\x00\x00\x00\
x00\x00\x00"
irb(main):009:0> n.pack("SSS")
=> "A\x00B\x00C\x00"
irb(main):010:0> n.pack("sss")
=> "A\x00B\x00C\x00"
irb(main):011:0>
이제 콘솔에서 n.pack("SSS") and n.pack("sss");n.pack("ccc") and n.pack("CCC"); n.pack("qqq") and n.pack("QQQ")
같은 출력을 볼 수 있습니다. 그렇다면 차이점은 무엇입니까?
그리고 실제 제품에서 각 지시어가 작동하는 방식에 대한 예제도 다루지 않았습니다. 나는 아래 지시문을 테스트하는 방법을 모르기 때문에 혼동 스럽습니까? 나를 위해 또한 들이 협조 어떤 작은 코드 :
S_, S!
S> L> Q>
S!< I!<
L_, L!
'+ 1' :
단순화 측면에서 http://en.wikipedia.org/wiki/Endianness
가 그냥 정수는 바이트로 변환해야 주문하는 포장 방법을 알려줍니다 당신의 설명에 '무엇과 왜'- 같은 것에 대해 대단히 감사합니다. 그러나 실제 생활에서 어떻게 사용되는지 살펴보기 위해 요청한 지시어에 대한 코드를 제공 할 수 있습니까? 나는 문서 자체에 어떤 코드도 보지 못했기 때문에 결국에는 그것을 시도 할 수 없었다. 그래서 당신의 작은 도움이 저에게 잘 시작하도록 도와 줄 수 있습니다! –
@PythonLikeYOU - 제 편집 참조 – Casper
당신은 마지막 부분을 잘 설명했지만, 제 잘못은 완전히 요컨대 들어 있습니다! : –