Computer >> 컴퓨터 >  >> 프로그램 작성 >> Ruby

자신을 설명하는 Ruby 객체를 만드는 방법

이 기사에서는 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 메소드를 사용하여 더 나은 클래스를 만드는 방법을 배웠습니다!

이 기사가 마음에 드셨다면 더 많은 사람들이 찾을 수 있도록 공유해 주세요.

읽어주셔서 감사합니다.