comp.lang.ada
 help / color / mirror / Atom feed
From: "Björn Lundin" <b.f.lundin@gmail.com>
Subject: Re: Is there a way to see if a value is declared as a constant
Date: Mon, 13 Sep 2021 19:27:42 +0200	[thread overview]
Message-ID: <sho1me$jf5$1@dont-email.me> (raw)
In-Reply-To: <nnd$38993e8c$31c2bc63@28832d745e09e0f7>

Den 2021-09-13 kl. 19:08, skrev ldries46:
> I have a set of constants that need a different name each for 
> readability. It may not be an array.
> For instance:
> C1 : constant record_item := .....
> C2 : constant record_item := .....
> C3 : constant record_item := .....
> C4 : constant record_item := .....
> C5 : constant record_item := .....


Two approaches - but both uses arrays.
You don't say why (more that readability) you don't want array.

If it is because integer idexing you can skip that and
put the values in an array, using a
readable index type

eg (for placing bets at Betfair - football/soccer

    type Bet_Market_Type is (Match_Odds,
                             Correct_Score,
                             Half_Time_Score,
                             Hat_Tricked_Scored,
                             Penalty_Taken,
                             Sending_Off);

Market : array (Bet_Market_Type'range) of record_item := (...);


use as

Market(Correct_Score) := ...



or
put the values in an array.
Let constants rename item in array

use constants in code

check RI in array




> 
> Now in a procedure or a function I have to use one of these constants
> for instance:
> 
> function X(C : record_item) return record_Item is
>     RI : record_item;
> begin
>     ..
>     ..
>     RI := C -- This C may only be one of the five constants and not 
> another record_item
>     ..
>     ..
>      return RI;
> end X;
> 
> In what way do I test if C is a constant and not another record Item


-- 
Björn

  reply	other threads:[~2021-09-13 17:27 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-09-13 17:08 Is there a way to see if a value is declared as a constant ldries46
2021-09-13 17:27 ` Björn Lundin [this message]
2021-09-13 18:48 ` Jeffrey R. Carter
2021-09-13 19:00 ` Dmitry A. Kazakov
2021-09-14  6:47 ` ldries46
2021-09-14  6:58   ` Emmanuel Briot
2021-09-14 23:47 ` Shark8
2021-09-18  5:54 ` ldries46
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox