Usages of ID class in Salesforce

As we know that each record Id represents a unique sObject record. There are two versions of every record Id in salesforce :
・15 digit case-sensitive version which is referenced in the UI
・18 digit case-insensitive version which is referenced through the API
And there are many usages of sObject ID,such as:

Get the sObject name

Get 15 digit ID

The ID needs to be 15 digit when it is passed as a report parameter.

Get 18 digit ID

The most simple solution is to create a formula field with formula “CASESAFEID(Id)”,and get the value of it from Apex or Report.
And, there have some really really crazy solutions,as the following :