호출 가능한 객체

Callable object

컴퓨터 프로그래밍에서 호출 가능한 물체함수처럼 불릴 수 있는 물체다.

다른 언어로 된

C++인

C++에서 함수 호출 연산자를 오버로드하는 모든 클래스operator()함수 호출 구문을 사용하여 호출할 수 있다.

#include <아이오스트림> 구조상의  {     공허하게 하다 운영자()() 경시하다     {         찌꺼기::뻐드렁니가 나다 << "불러.";     } };  인트로 본래의() {     foo_fo_fo.;    foo_fo_fo.();  // 이렇게 하면 "Call"이 화면에 출력된다. } 

인 C#

PHP에서

PHP 5.3+는 예를 들어 에 대한 파라미터로 사용할 수 있는 1급 기능을 가지고 있다.usort()함수:

a달러 = 배열하다(3, 1, 4); usort(a달러, 기능을 하다 ($x, $y) { 돌아오다 $x - $y; }); 

또한 PHP 5.3+에서는 마법을 추가하여 사물을 불활성화 할 수 있다.__invoke()해당 클래스에 대한 방법:[1]

계급 빼기 {     공중의 기능을 하다 ____($x, $y) { 돌아오다 $x - $y; } }  a달러 = 배열하다(3, 1, 4); usort(a달러, 새로운 빼기()); 

인 파이톤

Python에서는 다음이 있는 모든 개체__call__()함수 호출 구문을 사용하여 메소드를 호출할 수 있다.

계급 :     반항하다 __call__(자아의):         인쇄하다("불러.")  foo_fo_fo. = () foo_fo_fo.()  # 화면에 "콜" 출력 

[2]

다른 예:

계급 축전기:     반항하다 __init___(자아의, n):         자아의.n = n      반항하다 __call__(자아의, x):         자아의.n += x         돌아오다 자아의.n 

인 다트

다트 클래스가 함수처럼 호출되도록 하려면call()방법의

계급 워너비기능 {   부르다( a,  b,  c) => '$a $b $c!'; }  본래의() {   시합을 하다 wf = 새로운 워너비기능();   시합을 하다 밖으로 = wf("안녕","거기","강");   인쇄하다('$밖으로'); } 

[3]

인 스위프트

Swift에서 호출 가능한 객체는 다음을 사용하여 정의된다.callAsFunction.[4]

구조상의 CallableStruct {     시합을 하다 가치를 매기다: 인트     펑크 callAsFunction(_ 번호를 붙이다: 인트, 저울: 인트) {         인쇄하다(저울 * (번호를 붙이다 + 가치를 매기다))     } } 하게 하다 호출할 수 있는 = CallableStruct(가치를 매기다: 100) 호출할 수 있는(4, 저울: 2) 호출할 수 있는.callAsFunction(4, 저울: 2) // 두 기능 모두 인쇄 208을 호출한다. 


참조

  1. ^ Magic Methods에 대한 PHP 문서
  2. ^ Bösch, Florian. "What is a "callable" in Python?". StackOverflow.com. Retrieved 24 September 2017.
  3. ^ "A Tour of the Dart Language". www.dartlang.org. Retrieved 2019-03-25.
  4. ^ "Declarations — The Swift Programming Language (Swift 5.6)". docs.swift.org. Retrieved 2022-02-28.

외부 링크