A means remembering when to use => and when to use <= you should think like it should.
"<=" as the destination for the signal as the target (for the variable, it is :: ").
Examples:
y <= a + b + c; --y is a signal v := a + b +c; --v is a variable
"=>" as a mapping .
Example for explicit component mapping (recommended IMHO style):
my_instance : my_component port map( port1 => my_signal1 );
Example for explicit function mapping (useful when parameters are not trivial):
my_signal <= my_function(parameter1 => something1, parameter2 => something2);
An example to explicitly display an array
type array_type is array(0 to 1) of std_logic_vector(7 downto 0); constant my_array : array_type := (0 => x"AB", 1 => x"CD");
An example to explicitly display a record
type record_type is record a : natural; b : std_logic_vector(2 downto 0); end record; constant my_record: record_type := (a => 0, b => "101");
The advantage of this style allows matching to be done in the order of your choice (not necessarily in the definition of a component / function ...). Moreover, in the specific case, an array with one element is required.
Finally, using the "=>" keyword others allows you to match all the other elements that have not yet been matched.
Example for assigning an array:
type array_type is array(0 to 5) of std_logic_vector(7 downto 0); constant my_array : array_type := (0 => x"AB", 1 => x"CD", others => (others => '0'));