Memory model: possession and borrowing
Rust Programming Language

Add to my library

H3098 V2 Quizzed article

Memory model: possession and borrowing


Rust Programming Language

Author : Laurent BLOCH

Publication date: June 10, 2022, Review date: February 29, 2024 | Lire en français

Add to my library Add to my library

Logo Techniques de l'Ingenieur You do not have access to this resource.
Request your free trial access! Free trial

Already subscribed?

4. Memory model: possession and borrowing

Rust's memory model is undoubtedly one of its most original features: at any given moment, a value is owned by one variable and one variable only, and only the function where this variable is declared can modify it (if it can be modified). If the value of this variable is passed as an argument to another function, the first function can no longer access it. In fact, a variable can be read by several functions, but written by just one, and a reference counter system makes it possible to know precisely whether an object can (must) be abandoned or not. A variable can lend its value to another, pass it on to a function, or (in the case of aggregates such as strings, structures or vectors) create a clone. Creating a clone corresponds to what other languages call "deep copy", as opposed to "shallow copy", with the restriction that once a modifiable variable has lent its value, it can no longer...

You do not have access to this resource.
Logo Techniques de l'Ingenieur

Exclusive to subscribers. 97% yet to be discovered!

You do not have access to this resource. Click here to request your free trial access!

Already subscribed?


Article included in this offer

"Software technologies and System architectures"

( 230 articles )

Complete knowledge base

Updated and enriched with articles validated by our scientific committees

Services

A set of exclusive tools to complement the resources

View offer details

Dans les ressources documentaires

Linux embarqué

Linux est un système d'exploitation multitâche de la famille UNIX. Développé initialement sur processeur ...

Compilateur

Un compilateur est un logiciel permettant de transformer un programme source (écrit dans un langage de pr...

Programmation par aspects

La programmation par aspects (en anglais « aspect-oriented programming ») est un style de dével...

Langage UML : développement de logiciel et modélisation visuelle

Le langage UML (pour Unified Modeling Language) est un langage graphique de modélisation des systèmes log...

Tous les livres blancs
Article Vers un nouveau record des cyberattaques ?
25 September 2019
Vers un nouveau record des cyberattaques ?

Année après année, c’est toujours le même constat : peu ou mal protégées, les entreprises et les administrations sont de plus en plus nombreuses à être victimes...

Toutes les actualités
Contact us