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의 객체 지향 프로그래밍에 대한 이 소개를 읽고 계속 배우십시오.
읽어주셔서 감사합니다!