1
0
mirror of https://github.com/adambard/learnxinyminutes-docs.git synced 2025-02-06 08:09:13 +01:00

updated cairo.html.markdown

This commit is contained in:
Darlington02 2023-02-06 15:04:37 +01:00
parent aced78c444
commit 741e0f4a7f

View File

@ -239,14 +239,14 @@ from starkware.cairo.common.bool import TRUE
+ Storage variables: Cairo's storage is a map with `2^251` slots, where each
slot is a felt which is initialized to `0`. You create one using the
`@storage_var` decorator
`@storage_var` decorator.
```cairo
@storage_var
func names() -> (name: felt) {}
```
+ Storage mappings: Unlike soldity where mappings have a separate keyword, in
+ Storage mappings: Unlike Solidity where mappings have a separate keyword, in
Cairo you create mappings using storage variables.
```cairo
@ -269,7 +269,7 @@ from starkware.cairo.common.bool import TRUE
+ Constants: Constants are fixed and as such can't be altered after being set.
They evaluate to an integer (field element) at compile time. To create a
constant in Cairo, you use the `const` keyword. Its proper practice to
constant in Cairo, you use the `const` keyword. It's proper practice to
capitalize constant names.
```cairo
@ -479,12 +479,12 @@ contract passing in the contract address as the first parameter like this:
IENS.store_name(contract_address, _name);
```
Note that Interfaces excludes the function body/logic and the implicit
Note that Interfaces exclude the function body/logic and the implicit
arguments.
### 9. Recursions
Due to the unavailability of loops, Recursions are the go-to for similar
Due to the unavailability of loops, Recursion is the go-to for similar
operations. In simple terms, a recursive function is one which calls itself
repeatedly.
@ -512,7 +512,7 @@ The nth fibonacci term is the sum of the `nth - 1` and the `nth - 2` numbers,
that's why we get these two as `(x,y)` using recursion.
NB: when implementing recursive functions, always remember to implement a base
case (`n==0`, `n==1` in our case), to prevent stack overflow.
case (`n==0`, `n==1` in our case), to prevent stack overflows.
### 10. Registers
@ -529,7 +529,7 @@ registers:
### 11. Revoked References
Revoked references occurs when there is a call instruction to another function,
Revoked references occur when there is a call instruction to another function,
between the definition of a reference variable that depends on `ap` (temp
variables) and its usage. This occurs as the compiler may not be able to compute
the change of `ap` (as one may jump to the label from another place in the
@ -559,7 +559,7 @@ trying to access the `multiplier` variable after calling the `get_balance`
function.
In simple cases you can resolve revoked references by adding the keyword
`alloc_locals` within function scopes. In most complex cases you might need to
`alloc_locals` within function scopes. In more complex cases you might need to
create a local variable to resolve it.
```cairo