Lua 연구 노트에서 "."및 ":"의 역할 및 사용법

목차

1. 블로그 소개

2. 내용

의미:

":"는 메소드를 선언하고 ":"형식으로 호출합니다.

":"는 메소드를 선언하고 "."형식으로 호출합니다.

"."는 메소드를 선언하고 "."형식으로 호출합니다.

"."는 메소드를 선언하고 ":"형식으로 호출합니다.

3. 푸시

4. 결론


 

1. 블로그 소개

 

Lua 연구 노트 중 하나 인이 블로그에서는 메서드에서 "."및 ":"의 사용법과 다른 의미를 소개합니다. 메서드를 선언 할 때 "."또는 ":"를 사용할 수 있으며 메서드를 호출 할 수 있음을 알고 있습니다. 동시에 "."와 ":"을 사용할 수도 있습니다.이 두 형식이 교차 할 수 있습니다.이 블로그에서는 몇 가지 상황을 간략하게 소개합니다.


2. 내용

 

의미:

1. ":"를 사용하여 메소드를 선언 한 다음 매개 변수를 수신하면 기본적으로 매개 변수 self를 수신하고 수신 위치는 숨겨집니다.

2. "."를 사용하여 메서드를 선언합니다. 매개 변수의 첫 번째 숫자는 기본적으로 self 매개 변수를 수신합니다.이 매개 변수는 숨겨지지 않습니다.

3. ":"을 사용하여 메서드를 호출합니다. 매개 변수를 전달할 때 기본적으로 self가 전달되며 모든 매개 변수 앞에 숨겨져 있습니다.

4. "."를 사용하여 메서드를 호출합니다. 매개 변수를 전달할 때 첫 번째 매개 변수는 기본적으로 self로 전달되며이 매개 변수는 숨겨지지 않습니다.

아래와 같이 testFunc1 메서드와 testFunc2 메서드는 동일하며 다음 호출의 출력 결과는 동일합니다.

local func = {}

function func:testFunc1(a,b,c)
	print(a,b,c)
end

function func.testFunc2(self,a,b,c)
	print(a,b,c)
end

func:testFunc1(1,2,3)
func.testFunc1(self,1,2,3)

 

":"는 메소드를 선언하고 ":"형식으로 호출합니다.

testFunc1은 ":"로 정의 된 메소드이므로 실제 수신 된 매개 변수 형식은 (self, a, b, c) 여야하며 self 매개 변수는 숨겨져 있습니다.

여기서 호출은 ":"형식이므로 전달 된 실제 매개 변수는 (self, 1,2,3)이고 self 매개 변수는 숨겨집니다.

따라서 출력 결과 self는 func 테이블 자체이고 abc는 12 3입니다.

local func = {}

function func:testFunc1(a,b,c)
	print(self)
	print(a,b,c)
end

func:testFunc1(1,2,3)

-----------------------------------输出
table: 00C19238
1	2	3

 

":"는 메소드를 선언하고 "."형식으로 호출합니다.

testFunc1은 ":"로 정의 된 메소드이므로 실제 수신 된 매개 변수 형식은 (self, a, b, c) 여야하며 self 매개 변수는 숨겨져 있습니다.

여기서 호출은 "."형식이며 전달 된 매개 변수는 (1,2,3), 1은 self로 전달됩니다.

그래서 여기서 출력 결과 self는 1, abc는 2, 3, nil입니다.

local func = {}

function func:testFunc1(a,b,c)
	print(self)
	print(a,b,c)
end

func.testFunc1(1,2,3)

-----------------------------------输出
1
2	3	nil

 

"."는 메소드를 선언하고 "."형식으로 호출합니다.

testFunc1은 "."로 정의 된 메소드이므로 수신 된 매개 변수의 형식은 (self, a, b, c) 여야하며 self 매개 변수는 숨겨지지 않습니다.

여기서 호출은 "."형식이며 전달 된 매개 변수는 (func, 1,2,3)이고 func는 self로 전달됩니다.

따라서 출력 결과 self는 func 테이블이고 abc는 123입니다.

local func = {}

function func.testFunc1(self,a,b,c)
	print(self)
	print(a,b,c)
end

func.testFunc1(func,1,2,3)

-----------------------------------输出
table: 00AB9350
1	2	3

 

"."는 메소드를 선언하고 ":"형식으로 호출합니다.

testFunc1은 "."로 정의 된 메소드이므로 수신 된 매개 변수의 형식은 (self, a, b, c) 여야하며 self 매개 변수는 숨겨지지 않습니다.

여기서 호출은 ":"형식이며 전달 된 실제 매개 변수는 (self, 1,2,3)이고 self는 func입니다.

따라서 출력 결과 self는 func 테이블이고 abc는 123입니다.

local func = {}

function func.testFunc1(self,a,b,c)
	print(self)
	print(a,b,c)
end

func:testFunc1(1,2,3)

-----------------------------------输出
table: 00BC92B0
1	2	3

3. 푸시

Github : https : //github.com/KingSun5


4. 결론

        블로거의 글이 잘 쓰여졌다 고 생각되면 블로거에게 관심을 기울이고 블로그 글을 좋아할 수 있습니다. 또한 블로거의 능력이 제한되어 있습니다. 기사에 오류가 있으면 댓글을 달고 비판 해주세요. .

       QQ 교환 그룹 : 806091680 (중국인)

       이 그룹은 CSDN 블로거 Chinar가 만들었습니다. 추천합니다! 나도 그룹!

추천

출처blog.csdn.net/Mr_Sun88/article/details/105196932