Ask any question about EPFL courses, lectures, exercises, research, news, etc. or try the example questions below.
DISCLAIMER: The Graph Chatbot is not programmed to provide explicit or categorical answers to your questions. Rather, it transforms your questions into API requests that are distributed across the various IT services officially administered by EPFL. Its purpose is solely to collect and recommend relevant references to content that you can explore to help you answer your questions.
In computer science, a dispatch table is a table of pointers or memory addresses to functions or methods. Use of such a table is a common technique when implementing late binding in object-oriented programming. The following shows one way to implement a dispatch table in Perl, using a hash to store references to code (also known as function pointers).
my %dispatch = ( "-h" => sub { return "hello\n"; }, "-g" => &say_goodbye ); sub say_goodbye { return "goodbye\n"; }
my dispatch{ARGV[0]}; print sub ? $sub->() : "unknown argument\n"; Running this Perl program as perl greet -h will produce "hello", and running it as perl greet -g will produce "goodbye". Following is a demo of implementing dispatch table in JavaScript: var thingsWeCanDo = { doThisThing : function() { /* behavior / }, doThatThing : function() { / behavior / }, doThisOtherThing : function() { / behavior / }, default : function() { / behavior */ } }; var doSomething = function(doWhat) { var thingToDo = thingsWeCanDo.hasOwnProperty(doWhat) ? doWhat : "default" thingsWeCanDothingToDo; } Virtual method table In object-oriented programming languages that support virtual methods, the compiler will automatically create a dispatch table for each object of a class containing virtual methods. This table is called a virtual method table or vtable, and every call to a virtual method is dispatched through the vtable.