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

Ruby에서 Initialize 메서드를 사용하는 방법

initialize 메소드는 Ruby의 객체 생성 프로세스의 일부이며 객체의 초기 값을 설정할 수 있습니다.

다른 프로그래밍 언어에서는 이것을 "생성자"라고 부릅니다.

예를 들어 :

Point가 있다고 가정해 보겠습니다. 클래스, 이 지점에는 x 좌표가 필요합니다. &y .

이 값을 개체에 어떻게 전달하시겠습니까?

좋아요 :

Point.new(10, 20)

new 메소드는 Point와 같은 클래스에서 Ruby로 새 객체를 생성하는 방법입니다. , 또는 액세스 권한이 있는 다른 클래스.

신규와 초기화의 관계

이 두 인수 10에 주목하세요. &20 ?

여기에서 initialize로 돌아갑니다. 방법.

new에 인수를 전달하려고 하면 &initialize를 정의하지 않은 경우 오류가 발생합니다:

ArgumentError: wrong number of arguments (2 for 0)

new를 호출할 때 , Ruby는 initialize를 호출합니다. !

이것이 필요합니다 :

class Point
  def initialize(x, y)
  end
end

이제 Point를 만들 수 있습니다. 두 개의 인수가 있는 개체입니다.

따라서 initialize의 요점은 인수가 있는 개체를 만들 수 있습니다.

인수 저장

initialize에 전달된 인수 어디에도 자동으로 저장되지 않습니다.

인스턴스 변수를 사용하여 이 작업을 수행해야 합니다.

class Point
  def initialize(x, y)
    @x = x
    @y = y
  end
end

이것은 x의 값을 할당할 것입니다. &y 인스턴스 변수(@x &@y ) 나중에 액세스할 수 있습니다.

initialize에 대한 몇 가지 주의 사항 :

  • 선택 및 기본 인수를 정의할 수 있습니다.
  • return 사용 이 메소드 내부는 특별하고 항상 새 객체를 반환하기 때문에 의미가 없습니다.
  • initialize 정의 클래스에 인수가 필요하지 않은 경우 필요하지 않습니다.

initialize 내에서 다른 메소드를 호출할 수 있습니다. , 하지만 여기서 사용할 개체를 준비하는 데 필요한 것 이상으로 실제 작업을 수행하고 싶지는 않습니다.

예를 들어 :

수업이 Github API 작업에 관한 것이라면 API에 대한 가능한 모든 요청을 미리 로드하고 싶지 않을 것입니다.

API 키를 인스턴스 변수에 저장하기만 하면 됩니다.

또는 수업에 필요한 모든 데이터.

해시 및 기타 내장 객체 초기화

해시와 같은 내장 객체에는 new를 호출하는 것 외에 초기화 및 생성하는 특별한 방법이 있습니다. .

해시를 만드는 방법 :

h = Hash.new
h = Hash['a', 1]
h = {}

문자열을 만드는 방법 :

s = String.new
s = ""
s = %Q()

배열을 만드는 방법 :

a = Array.new(5)
a = %w(a b c)
a = []

%w 문자열 배열을 생성합니다.

요약

Ruby initialize 메소드와 new와의 관계에 대해 배웠습니다. 방법과 Ruby에서 객체 생성의 기초.

Ruby의 객체 지향 프로그래밍에 대한 이 소개를 읽고 계속 배우십시오.

읽어주셔서 감사합니다!