User Tools


Differences

This shows you the differences between two versions of the page.

Link to this comparison view

cl:functions:initialize-instance [2019/06/15 02:00]
cl:functions:initialize-instance [2019/09/16 13:00] (current)
Line 1: Line 1:
 +====== Standard Generic Function INITIALIZE-INSTANCE ======
 +
 +====Syntax====
 +  * **initialize-instance** //instance ''&​rest''​ initargs ''&​key''​ ''&​allow-other-keys''//​ → //​instance//​
 +
 +====Method Signatures====
 +  * **initialize-instance** (//​instance//​ **[[CL:​Types:​standard-object]]**) //''&​rest''​ initargs//
 +
 +====Arguments and Values====
 +  * //​instance//​ - an //​[[CL:​Glossary:​object]]//​.
 +  * //​initargs//​ - a //​[[CL:​Glossary:​defaulted initialization argument list]]//.
 +
 +====Description====
 +Called by **[[CL:​Functions:​make-instance]]** to initialize a newly created //​[[CL:​Glossary:​instance]]//​. The generic function is called with the new //​instance//​ and the //​[[CL:​Glossary:​defaulted initialization argument list]]//.
 +
 +The system-supplied primary //​[[CL:​Glossary:​method]]//​ on **[[CL:​Functions:​initialize-instance]]** initializes the //​[[CL:​Glossary:​slot|slots]]//​ of the //​instance//​ with values according to the //​initargs//​ and the **'':​initform''​** forms of the //​[[CL:​Glossary:​slot|slots]]//​. It does this by calling the generic function **[[CL:​Functions:​shared-initialize]]** with the following arguments: the //​instance//,​ **[[CL:​Constant Variables:​t]]** (this indicates that all //​[[CL:​Glossary:​slot|slots]]//​ for which no initialization arguments are provided should be initialized according to their **'':​initform''​** forms), and the //​initargs//​.
 +
 +Programmers can define //​[[CL:​Glossary:​method|methods]]//​ for **[[CL:​Functions:​initialize-instance]]** to specify actions to be taken when an instance is initialized. If only //​[[CL:​Glossary:​after methods]]// are defined, they will be run after the system-supplied primary //​[[CL:​Glossary:​method]]//​ for initialization and therefore will not interfere with the default behavior of **[[CL:​Functions:​initialize-instance]]**.
 +
 +====Examples====
 +None.
 +
 +====Affected By====
 +None.
 +
 +====Exceptional Situations====
 +None.
 +
 +====See Also====
 +  * **[[CL:​Functions:​shared-initialize|Generic Function SHARED-INITIALIZE]]**
 +  * **[[CL:​Functions:​make-instance|Generic Function MAKE-INSTANCE]]**
 +  * **[[CL:​Functions:​slot-boundp|Function SLOT-BOUNDP]]**
 +  * **[[CL:​Functions:​slot-makunbound|Function SLOT-MAKUNBOUND]]**
 +  * {\secref\ObjectCreationAndInit}
 +  * {\secref\InitargRules}
 +  * {\secref\DeclaringInitargValidity}
 +
 +====Notes====
 +None.
 +
 +\issue{INITIALIZATION-FUNCTION-KEYWORD-CHECKING}