Logo

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"),
    }
}

New implementation...
< >
tkoenig