Unsichere Funktionen aufrufen
Unsichere Funktionen aufrufen
A function or method can be marked unsafe
if it has extra preconditions you must uphold to avoid undefined behaviour:
Unsichere Funktionen schreiben
You can mark your own functions as unsafe
if they require particular conditions to avoid undefined behaviour.
Speaker Notes
This slide should take about 5 minutes.
Unsichere Funktionen aufrufen
get_unchecked
, like most _unchecked
functions, is unsafe, because it can create UB if the range is incorrect. abs
is unsafe for a different reason: it is an external function (FFI). Calling external functions is usually only a problem when those functions do things with pointers which might violate Rust's memory model, but in general any C function might have undefined behaviour under any arbitrary circumstances.
The "C"
in this example is the ABI; other ABIs are available too.
Unsichere Funktionen schreiben
We wouldn't actually use pointers for a swap
function - it can be done safely with references.
Note that unsafe code is allowed within an unsafe function without an unsafe
block. We can prohibit this with #[deny(unsafe_op_in_unsafe_fn)]
. Try adding it and see what happens. This will likely change in a future Rust edition.