In the Ivy Designer Guide, Chapter 7, section Null handling / Automatic object creation, it states

You can to use the .# operator to suppress the automatic object creation.

if( in.#customer == null)
  // object is null

if (in.#customer is initialized)
  // object is not null or has been set to a non-default value

I also discover that we can do a chain of suppresing initialization like this:

if (in.#bigDataClass.#smallerDataClass.#smallDataClass.#tinyDataClass.#fieldXyz is initialized) {
    // Reach here if all of the properties are initialized
} else  {
   // Reach here if any of the properties are null

This really reduces the verbosity of the code when I want to check a deep structure of data classes. Despite its usefulness, I cannot find any (Ivy) documentation mentioning about this feature. I only discovered it by chance and have been using it until now.

My question is whether this is an official feature but has been forgotten to mention or it is an unofficial/hidden feature and could be dropped in the future?

Thanks & Regards

asked 04.08.2014 at 11:35

Genzer%20Hawker's gravatar image

Genzer Hawker
accept rate: 66%

The .# operator works always also if chained. So that is an official feature. I will add another sample to the documentation which will show that.


answered 04.08.2014 at 15:59

Christian%20Strebel's gravatar image

Christian St... ♦
accept rate: 88%

Your answer
toggle preview

Follow this question

By Email:

Once you sign in you will be able to subscribe for any updates here



Answers and Comments

Markdown Basics

  • *italic* or _italic_
  • **bold** or __bold__
  • link:[text]( "Title")
  • image?![alt text](/path/img.jpg "Title")
  • numbered list: 1. Foo 2. Bar
  • to add a line break simply add two spaces to where you would like the new line to be.
  • basic HTML tags are also supported



Asked: 04.08.2014 at 11:35

Seen: 1,316 times

Last updated: 04.08.2014 at 15:59