Author:halw

Date:2009-06-11T18:23:50.000000Z


git-svn-id: https://svn.eiffel.com/eiffel-org/trunk@233 abb3cda0-5349-4a8f-a601-0c33ac3a8c38
This commit is contained in:
halw
2009-06-11 18:23:50 +00:00
parent d2f0deebf5
commit ea24e57229
2 changed files with 7 additions and 1 deletions

View File

@@ -0,0 +1,6 @@
[[Property:title|EiffelStudio 6.4 release notes]]
[[Property:link_title|6.4]]
[[Property:weight|-11]]
[[Property:uuid|2f88d204-6e51-6150-8fbe-f6a3b41d5ec1]]

View File

@@ -169,7 +169,7 @@ Still, it's not too hard to understand the basics of initializing variables of a
A self-initializing attribute is guaranteed to have a value when accessed at run time. Declarations of self-initializing attributes are characterized by the use of <code>attribute</code> keyword. The code that follows the <code>attribute</code> keyword is executed to initialize the attribute in the case that the attribute is accessed prior to being initialized in any other way.
So, self-initializing attributes are just ordinary attributes, and they can be initialized in the traditional ways. The difference is that the code in the attribute part serves as a kind of safety net guaranteeing that a self-initializing attribute will never be void.
So, self-initializing attributes are ordinary attributes, with the restriction that they are of both ''attached'' types and ''reference'' types (i.e., not expanded types or constants). Self-initializing attributes still can be, and typically will be initialized in the traditional ways. The difference is that the code in the attribute part serves as a kind of safety net guaranteeing that a self-initializing attribute will never be void, even if it is accessed prior to being initialized by one of the traditional means.
<code>
value: STRING