You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+17-17Lines changed: 17 additions & 17 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -32,7 +32,7 @@ Para rodar todos os testes automatizados da pasta `Testes` e visualizar os resul
32
32
33
33
# Escopo
34
34
35
-
Esse projeto tem como objetivo adicionar à [Linguagem Imperativa 1](https://augustosampaio.github.io/PLP/linguagens/imperativa1) o operador Null, a capacidade de Null safety, e operadores presentes em linguagens modernas que estão relacionados ao conceito de Null ("??", "!", "??="), além do operador ternário.
35
+
Esse projeto tem como objetivo adicionar à [Linguagem Imperativa 1](https://augustosampaio.github.io/PLP/linguagens/imperativa1) o operador Null, a capacidade de Null safety, e operadores presentes em linguagens modernas que estão relacionados ao conceito de Null ("??", "!", "?:="), além do operador ternário.
36
36
37
37
Abaixo temos o que será implementado pela linguagem em mais detalhes:
38
38
@@ -79,19 +79,18 @@ Abaixo temos o que será implementado pela linguagem em mais detalhes:
79
79
```
80
80
81
81
82
-
-[]**Null coalescing:** Operador binário ("??") que retorna o lado direito da operação caso o operador seja null, ou o esquerdo caso não seja null. Valor "default".
82
+
-[x]**Null coalescing:** Operador binário ("??") que retorna o lado direito da operação caso o operador seja null, ou o esquerdo caso não seja null. Valor "default".
83
83
84
84
Exemplo:
85
85
```java
86
-
{var optional y =2 ;
87
-
{ varx = y ??3 ;
88
-
write(x)
89
-
}
86
+
{
87
+
varoptional y =null,
88
+
var x = y ??5;
89
+
write(x)
90
90
}
91
-
// y pode ser null (nesse caso tem um valor)
92
-
// Caso y seja null, x recebe 3
93
-
// Caso não, x recebe y, que é 2
94
-
// x vale 2
91
+
// y pode ser null (nesse caso é null)
92
+
// x é o valor de y caso y não seja null, ou 5 caso y seja null
93
+
// x vale 5
95
94
```
96
95
97
96
-[x]**Operador Ternário:** Operador "? :" que atua como um if-then-else.
@@ -132,17 +131,18 @@ Abaixo temos o que será implementado pela linguagem em mais detalhes:
132
131
// x é o valor de y (aqui tomado como não-nulo) + 2
133
132
// erro de execução por tentar acessar um valor que é nulo
134
133
```
135
-
-[]**Operador de atribuição Se Nulo (Null-Aware Assignment Operator):** operador binário ("??=") que atribui um valor ao lado esquerdo se, e somente se, esse valor for nulo. Na prática, seria um *shadowing* condicional.
134
+
-[x]**Operador de atribuição Se Nulo (Null-Aware Assignment Operator):** operador binário ("?:=") que atribui um valor ao lado esquerdo se, e somente se, esse valor for nulo. Na prática, seria um *shadowing* condicional.
136
135
137
136
Exemplo:
138
137
```java
139
-
{ var optional y =null ;
140
-
y ??=5 ;
141
-
y ??=10 ;
142
-
write(y)
138
+
{
139
+
var optional y =null;
140
+
y ?:=5;
141
+
y ?:=10;
142
+
write(y)
143
143
}
144
144
// Declaramos uma variável como possivelmente nula
145
-
// Atribuímos 5 a ela, já que ela é nula
145
+
// Atribuímos a ela o valor 5, já que ela é nula
146
146
// Como a variável agora tem um valor (5), ela não recebe 10
0 commit comments