Comme je l'ai réalisé jusqu'à ce moment l'idée de base pour la programmation réactive fonctionnelle Scala est de définir un signal qui étend la classe DynamicVariable
de Scala, mais je ne pouvais pas comprendre quelque chose d'écrit pour expliquer cette classe, il a dit:Comment Scala parvient-elle à éviter la course dans la programmation réactive?
DynamicVariables fournissent un mécanisme de liaison lorsque la valeur actuelle est trouvée par la portée dynamique, mais où l'accès à la variable elle-même est résolu par la portée statique.
Si je ne me trompe pas, la portée dynamique est quand une fonction appelée voit une variable du champ d'application du programme de l'appelant et la portée statique est quand il voit une variable de sa propre portée comme le pseudo-code suit:
let x = 1
func dynamic (y: Int) = y + x
func static (w: Int) = y + x
func main() = {
let x = 2
dynamic (3) //returns 5
static (3) //returns 4
}
la question est de savoir comment est le sens de l'accès à la variable elle-même, et si elle implique écrit, comment Scala éviter les courses lorsque certaines fonctions ont chacun une copie et que vous voulez écrire à la variable?