Hubbry Logo
search button
Sign in
Dispatch table
Dispatch table
Comunity Hub
History
arrow-down
starMore
arrow-down
bob

Bob

Have a question related to this hub?

bob

Alice

Got something to say related to this hub?
Share it here.

#general is a chat channel to discuss anything related to the hub.
Hubbry Logo
search button
Sign in
Dispatch table
Community hub for the Wikipedia article
logoWikipedian hub
Welcome to the community hub built on top of the Dispatch table Wikipedia article. Here, you can discuss, collect, and organize anything related to Dispatch table. The purpose of the hub is to connect peo...
Add your contribution
Dispatch table

In computer science, a dispatch table is a table of pointers or memory addresses to functions or methods.[1] Use of such a table is a common technique when implementing late binding in object-oriented programming.

In different programming languages

[edit]

Perl

[edit]

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).

# Define the table using one anonymous code-ref and one named code-ref
my %dispatch = (
    "-h" => sub {  return "hello\n"; },
    "-g" => \&say_goodbye
);
 
sub say_goodbye {
    return "goodbye\n";
}
 
# Fetch the code ref from the table, and invoke it
my $sub = $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".

JavaScript

[edit]

Following is a demo of implementing a dispatch table in JavaScript:

const thingsWeCanDo = {
    doThisThing() { /* behavior */ },
    doThatThing() { /* behavior */ },
    doThisOtherThing() { /* behavior */ },
    default() { /* behavior */ }
};

function doSomething(doWhat) {
    const thingToDo = Object.hasOwn(thingsWeCanDo, doWhat) 
        ? doWhat 
        : "default";
    return thingsWeCanDo[thingToDo]();
}

Virtual method tables

[edit]

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.

See also

[edit]

References

[edit]
  1. ^ Goldfuss, Alice. "Function Dispatch Tables in C". alicegoldfuss.com. Retrieved 23 January 2021.