diff options
author | Indrajith K L | 2022-12-03 17:00:20 +0530 |
---|---|---|
committer | Indrajith K L | 2022-12-03 17:00:20 +0530 |
commit | f5c4671bfbad96bf346bd7e9a21fc4317b4959df (patch) | |
tree | 2764fc62da58f2ba8da7ed341643fc359873142f /v_windows/v/examples/function_types.v | |
download | cli-tools-windows-master.tar.gz cli-tools-windows-master.tar.bz2 cli-tools-windows-master.zip |
Diffstat (limited to 'v_windows/v/examples/function_types.v')
-rw-r--r-- | v_windows/v/examples/function_types.v | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/v_windows/v/examples/function_types.v b/v_windows/v/examples/function_types.v new file mode 100644 index 0000000..fa924cb --- /dev/null +++ b/v_windows/v/examples/function_types.v @@ -0,0 +1,32 @@ +// Function signatures can be declared as types: + +type Filter = fn (string) string + +// Functions can accept function types as arguments: + +fn filter(s string, f Filter) string { + return f(s) +} + +// Declare a function with a matching signature: + +fn uppercase(s string) string { + return s.to_upper() +} + +fn main() { + // A function can be assigned to a matching type: + + my_filter := Filter(uppercase) + + // You don't strictly need the `Filter` cast - it's only used + // here to illustrate how these types are compatible. + + // All of the following prints "HELLO WORLD": + + println(filter('Hello world', my_filter)) + println(filter('Hello world', uppercase)) + println(filter('Hello world', fn (s string) string { + return s.to_upper() + })) +} |