# Programming-Idioms

This language bar is your friend. Select your favorite languages!

# Idiom #225 Declare and use an optional argument

Declare an optional integer argument x to procedure f, printing out "Present" and its value if it is present, "Not present" otherwise

``Imports System``
``````Sub f(Optional x As Integer? = Nothing)
Console.WriteLine(If(x.HasValue, \$"Present {x}", "Not Present"))
End Sub``````
``````(defn f
([] (println "Not present"))
([x] (println "Present" x)))``````
``````(defn f [& [x]]
(if (integer? x)
(println "Present" x)
(println "Not present")))``````
``````#include <optional>
#include <iostream>``````
``````void f(std::optional<int> x = {}) {
std::cout << (x ? "Present" + std::to_string(x.value()) : "Not Present");
}``````
``````#include <optional>
#include <iostream>``````
``````void f(std::optional<int> x = {}) {
if (x) {
std::cout << "Present" << x.value();
} else {
std::cout << "Not present";
}
}``````
``using System;``
``````void f(int? x = null)
{
Console.WriteLine(x.HasValue ? \$"Present {x}" : "Not Present");
}``````
``void f({int? x}) => print(x == null ? "Not present" : "Present");``
``````subroutine f(x)
integer, optional :: x
if (present(x)) then
print *,"Present", x
else
print *,"Not present"
end if
end subroutine f
``````
``````func f(x ...int) {
if len(x) > 0 {
println("Present", x[0])
} else {
println("Not present")
}
}``````
``````function f(x) {
console.log(x ? `Present: \${x}` : 'Not present');
}``````
``````private void f(Integer x) {
if (x != null) {
System.out.println("Present " + x);
} else {
System.out.println("Not present");
}
}``````
``````function f( x )
if x then
print("Present", x)
else
print("Not present")
end
end``````
``````function f(?int \$x = null) {
echo \$x ? 'Present' . \$x : 'Not present';
}``````
``````procedure f; overload;
begin
writeln('not present');
end;

procedure f(x: integer); overload;
begin
writeln('present');
end;``````
``````sub f {
my \$x = shift;
if (defined \$x) {
print("Present \$x\n");
}
else {
print("Not Present\n");
}
}``````
``````def f(x=None):
if x is None:
print("Not present")
else:
print("Present", x)``````
``````def f( x=nil )
puts x ? "present" : "not present"
end
``````
``````fn f(x: Option<()>) {
match x {
Some(x) => println!("Present {}", x),
None => println!("Not present"),
}
}``````

tkoenig