이 기사에서는 Ruby 검사 방법의 작동 방식과 이 방법을 사용하는 이유에 대해 설명합니다.
문자열이나 배열을 인쇄하면 내용이 표시됩니다.
예 :
입력 [1,2,3]123
하지만 자신의 개체를 인쇄할 때...
이거 보여요 :
#<고양이:0x29458e0>
왜?
Ruby에게 이 클래스를 합리적인 방식으로 표시하는 방법을 알려주지 않았기 때문입니다.
to_s
와 같은 메소드를 정의하면 이것을 변경할 수 있습니다. .
어떻게 작동하는지 봅시다!
to_s 구현
객체와 함께 put을 사용할 때 Ruby는 to_s
개체의 문자열 표현을 가져오는 메서드입니다.
기본적으로 클래스 이름(Cat
)...
또한 object_id
를 나타내는 숫자 16진수 형식(0x29458e0
) ).
변경 방법은 다음과 같습니다. :
class Cat def to_ "나는 고양이야" endendputs Cat.new# "나는 고양이야"
클래스에 인스턴스 변수가 있는 경우 개체 설명의 일부로 만들 수 있습니다.
좋아요 :
class Cat attr_reader :color def initialize(color) @color =color end def to_s "나는 #{color} 고양이입니다" endendputs Cat.new("blue")# "나는 파란 고양이입니다"puts Cat.new("white")# "나는 하얀 고양이야"
이제 이 개체를 인쇄할 때 더 유용한 정보를 볼 수 있습니다.
멋지지 않나요?
루비 검사 방법
두 가지 방법으로 개체를 나타낼 수 있습니다.
첫 번째 :
to_s
사용 .
이것은 개체를 표시할 때 사용자에게 표시되기를 원하는 것입니다.
예를 들어 시간 개체를 사용하면 의미 있는 방식으로 시간을 표시합니다(2018-12-28 19:17:28
), 시간이 실제로 어떻게 저장되는지 표시하는 대신(1546021067
).
그럼 :
inspect
할 수 있습니다. 개체의 경우 더 원시 버전의 개체를 제공합니다.
차이점은 무엇입니까?
to_s
정의 넣기를 사용하면 개체의 이 특정 보기가 표시됩니다.inspect
정의 자신과 다른 개발자의 디버깅을 돕기 위해
예시 :
"abc".inspect
다음으로 표시 :
"abc"
Inspect는 따옴표와 특수 문자(예:\n
줄 바꿈)이 표시됩니다.
가장 좋은 점은?
inspect
를 구현할 수 있습니다. 자신의 수업에서 방법 🙂
방법은 다음과 같습니다. :
class Cat attr_reader :color def inspect "Cat - id:#{object_id} - color:#{color}" endendCat.new("white").inspect# "Cat - id:23316588 - color:white"사전>이것이 자신을 설명하는 개체를 만드는 방법입니다!
동영상 튜토리얼
요약
Ruby inspect &to_s 메소드를 사용하여 더 나은 클래스를 만드는 방법을 배웠습니다!
이 기사가 마음에 드셨다면 더 많은 사람들이 찾을 수 있도록 공유해 주세요.
읽어주셔서 감사합니다.