Difference between revisions of "Talk:Record"

From Free Pascal wiki
Jump to navigationJump to search
(mark as todo for me)
Line 6: Line 6:
 
<small>the previous unsigned message was made by [[User:Finchley|Finchley]] on 2017-07-09T13:42:25Z</small>
 
<small>the previous unsigned message was made by [[User:Finchley|Finchley]] on 2017-07-09T13:42:25Z</small>
 
: True dat. [[User:Kai Burghardt|Kai Burghardt]] ([[User talk:Kai Burghardt|talk]]) 23:02, 11 February 2018 (CET)
 
: True dat. [[User:Kai Burghardt|Kai Burghardt]] ([[User talk:Kai Burghardt|talk]]) 23:02, 11 February 2018 (CET)
 +
 +
== Record: Variable structure ==
 +
 +
<q><code>Single</code> was used as identifier in a set! This is not recommended in Pascal. So I changed all identifiers in set 'maritalStates' to be prefixed with 'ms_'.</q>
 +
 +
Response from [[User:Kai_Burghardt]] for undoing this change:
 +
<q>keep it simple [and Pascal does not define “single”, so there’s no reason not to name an identifier like that]</q>
 +
 +
# Take a look at [[Record#Variable_structure]] and you notice that <code style="color: red">single</code> is colored red. So this item has a meaning in pascal formatting. This is not good in an example, because noone should wonder why a maritalState is related to ObjectPascal.
 +
# Take a look at [[Data_type#Floating-point_types]]: in freepascal <code>real</code> is platform dependent. I would not recommend to use it. In the whole unit math you wouldn't find any <code>real</code>. Also <code>Single</code> is defined in fpc/3.0.4/source/rtl/win64/system.pp according to Lazarus hint, although you are free to redefine it as it is done here. Also not good in an example. And then you should at least mention it.
 +
# If you paste the example in a new application and define somewhere: <syntaxhighlight lang="pascal">Income : Single;</syntaxhighlight>the user gets: <code>Error in type definition</code>. Why would you introduce a source of unexplainable errors to new users?
 +
# Also it's good practice to prefix your enumerated type identifiers like: <code>bsSolid, vk_Escape, pf32bit</code>. Why not show good programming style to new users?
 +
# There is nothing ''simple'' in not using the last mentioned point. Instead, this would improve the readibility of the code - that is simple.

Revision as of 16:46, 29 July 2020

Concerning the variant record example. The last bit reads: "It doesn't harm, whether the field marriageDate ist defined multiple times."

I cannot get FPC (3.0.0) to compile TPerson specifically because of the "Duplicate identifier "marriageDate"" error. Could you show us how it's done? the previous unsigned message was made by Finchley on 2017-07-09T13:42:25Z

True dat. Kai Burghardt (talk) 23:02, 11 February 2018 (CET)

Record: Variable structure

Single was used as identifier in a set! This is not recommended in Pascal. So I changed all identifiers in set 'maritalStates' to be prefixed with 'ms_'.

Response from User:Kai_Burghardt for undoing this change: keep it simple [and Pascal does not define “single”, so there’s no reason not to name an identifier like that]

  1. Take a look at Record#Variable_structure and you notice that single is colored red. So this item has a meaning in pascal formatting. This is not good in an example, because noone should wonder why a maritalState is related to ObjectPascal.
  2. Take a look at Data_type#Floating-point_types: in freepascal real is platform dependent. I would not recommend to use it. In the whole unit math you wouldn't find any real. Also Single is defined in fpc/3.0.4/source/rtl/win64/system.pp according to Lazarus hint, although you are free to redefine it as it is done here. Also not good in an example. And then you should at least mention it.
  3. If you paste the example in a new application and define somewhere:
    Income : Single;
    
    the user gets: Error in type definition. Why would you introduce a source of unexplainable errors to new users?
  4. Also it's good practice to prefix your enumerated type identifiers like: bsSolid, vk_Escape, pf32bit. Why not show good programming style to new users?
  5. There is nothing simple in not using the last mentioned point. Instead, this would improve the readibility of the code - that is simple.