
EN: rebol.com -
rebol.org -
rebol.net -
FR: Rebol Documentation Project -
forum RebelBB -
rebol-france.org -
forum codeur -
Retourne le mot dans le contexte de l’objet.
in object word
object - L’argument object.(type: object! port!)
word - L’argument mot. (type: any-word)
Retourne le mot à l’intérieur d’un autre contexte. Cette fonction est normalement utilisée avec SET et GET.
set-console: func ['word value] [ set in system/console word value ] set-console prompt "==>" set-console result "-->"
C’est une fonction très utile pour accèder aux mots et aux valeurs d’un object. La fonction IN extraira un mot du contexte d’un objet. Par example, si vous créez un objet:
example: make object! [ name: "fred" age: 24 ]
Vous pouvez accèder aux champs nom et d’âge d’un objet avec :
print example/name print example/age fred 24
Mais vous pouvez aussi y accèder avec :
print get in example 'name print get in example 'age fred 24
La fonction IN retourne les mots “NAME” et “AGE’ tels qu’ils sont à l’intérieur de l’objet ”example“. Si vous tapez :
print in example 'name name
Le résultat sera le mot ”NAME“, mais en tant que valeur dans l’objet ”example". La fonction GET va alors extraire leurs valeurs. C’est la meilleure façon pour obtenir une valeur provenant d’un objet, sans considération de son type de données (comme dans le cas d’une fonction).
Le mot SET peut aussi être utilisé :
print set in example 'name "Bob" Bob
L’utilisation du mot IN, est ici une façon d’imprimer la valeur de tous les champs d’un objet :
foreach word next first example [
probe get in example word
]
"Bob"
24
Le mot FIRST retourne la liste des mots d’un objet. Le mot NEXT évite le premier mot, qui est SELF , l’objet en lui-même.
Voici un autre example qui affecte NONE à les valeurs d’un objet :
foreach word next first example [ set in example word none ]
La fonction IN peut aussi être utilisé pour vérifier rapidement l’existence d’un mot à l’intérieur d’un objet:
if in example 'name [print example/name] none
if in example 'address [print example/address]
C’est très utile pour les objets qui ont des variables optionnelles.