﻿1
00:00:04,440 --> 00:00:05,430
‫Olá e bem-vindo.

2
00:00:05,430 --> 00:00:10,800
‫E a seguir, veremos como podemos retornar valores de nossas funções usando diferentes tipos

3
00:00:10,800 --> 00:00:13,590
‫de retorno e uma instrução de retorno.

4
00:00:13,890 --> 00:00:15,960
‫Vamos mergulhar e ver como isso funciona.

5
00:00:16,950 --> 00:00:24,120
‫Então, na última aula, dissemos que se uma função não retorna um valor, então o tipo de retorno deve ser void, que

6
00:00:24,210 --> 00:00:25,980
‫é o que fizemos aqui.

7
00:00:25,980 --> 00:00:33,990
‫Mas e se quiséssemos pegar uma função como get basicamente verificando se devemos dar a volta?

8
00:00:34,110 --> 00:00:39,000
‫Você sabe, esta função aqui na declaração if, se pudéssemos dizer que deveria virar, seria

9
00:00:39,180 --> 00:00:42,540
‫uma função muito mais limpa no final do dia.

10
00:00:42,690 --> 00:00:44,490
‫Então, como fazemos isso?

11
00:00:44,490 --> 00:00:49,320
‫Como conseguimos uma função que pode retornar uma expressão booleana?

12
00:00:50,100 --> 00:00:55,800
‫Bem, a maneira como fazemos isso é simplesmente usando um tipo em vez do void.

13
00:00:55,950 --> 00:01:03,480
‫Então, se fôssemos retornar uma vez uma expressão booleana porque tipo bool como faríamos para uma variável.

14
00:01:03,720 --> 00:01:08,100
‫Mas o que distingue a função da variável é o fato de colocarmos parênteses depois dela, o que a

15
00:01:08,100 --> 00:01:10,230
‫torna uma função em vez de uma variável.

16
00:01:10,710 --> 00:01:18,480
‫E o que poderíamos fazer é chamá-lo de plataforma retornar e então colocamos nossos parênteses.

17
00:01:18,480 --> 00:01:24,360
‫E neste caso, eu não tenho nada que eu queira passar como argumento para esta função, então eu posso simplesmente deixar a

18
00:01:24,360 --> 00:01:29,550
‫lista de parâmetros vazia, colocar ponto e vírgula no final da linha e então copiar esta linha inteira e

19
00:01:29,550 --> 00:01:31,560
‫passar por cima para a plataforma móvel.

20
00:01:31,560 --> 00:01:36,600
‫CP E bem no final do arquivo, você pode colocá-lo em qualquer lugar que quiser entre qualquer uma das

21
00:01:36,600 --> 00:01:37,080
‫funções.

22
00:01:37,080 --> 00:01:39,450
‫Apenas certifique-se de que não esteja dentro de uma função.

23
00:01:39,870 --> 00:01:41,070
‫Vou colar aqui.

24
00:01:41,130 --> 00:01:45,870
‫Eu vou recuar e vou adicionar a classe e.

25
00:01:46,820 --> 00:01:48,320
‫A resolução do escopo opera.

26
00:01:48,320 --> 00:01:56,150
‫Portanto, um dois pontos de plataforma em movimento deve retornar a plataforma, remova o ponto e vírgula e adicione algumas

27
00:01:56,150 --> 00:01:56,630
‫chaves.

28
00:01:57,590 --> 00:02:05,030
‫E o que queremos fazer aqui é se quisermos realmente retornar um resultado, precisamos usar uma

29
00:02:05,030 --> 00:02:10,040
‫palavra-chave especial return seguida por uma expressão do tipo correto.

30
00:02:10,040 --> 00:02:12,170
‫Então, neste caso, tem que ser uma expressão booleana.

31
00:02:12,170 --> 00:02:18,380
‫Então, eu poderia retornar true e colocar ponto e vírgula no final, ou poderia retornar false e colocar um ponto e vírgula no

32
00:02:18,380 --> 00:02:18,860
‫final.

33
00:02:19,640 --> 00:02:21,290
‫Mas não precisa ser tão simples.

34
00:02:21,290 --> 00:02:23,720
‫Na verdade, pode ser qualquer expressão.

35
00:02:23,720 --> 00:02:28,940
‫Pode ser outra chamada para uma função, pode ser uma variável, pode ser o uso de alguns

36
00:02:28,940 --> 00:02:31,550
‫operadores como temos aqui dentro de nossa declaração.

37
00:02:32,120 --> 00:02:34,640
‫Então, de fato, vamos em frente e tentar fazer isso.

38
00:02:34,820 --> 00:02:36,740
‫Eu vou pegar essa expressão.

39
00:02:36,740 --> 00:02:41,300
‫A distância movida e é maior que a distância mov.

40
00:02:41,300 --> 00:02:49,310
‫Vou cortá-lo e colocá-lo como a expressão de retorno para esta função de retorno da

41
00:02:49,310 --> 00:02:49,940
‫plataforma.

42
00:02:50,600 --> 00:02:56,750
‫Inez vai reclamar aqui porque o movimento de distância não é uma variável local dentro da nossa função de

43
00:02:56,750 --> 00:02:57,980
‫retorno da plataforma.

44
00:02:58,610 --> 00:03:00,230
‫Então vamos mudar mais algumas coisas.

45
00:03:00,230 --> 00:03:07,460
‫Mas antes de fazermos isso, não quero esquecer de colocar uma chamada para this caso a plataforma retorne na instrução if para

46
00:03:07,460 --> 00:03:14,270
‫que a plataforma retorne e, em seguida, coloque os parênteses para que a função seja realmente chamada dentro de nossa

47
00:03:14,270 --> 00:03:14,840
‫instrução.

48
00:03:14,850 --> 00:03:17,090
‫Então agora está começando a ler um pouco melhor para mim.

49
00:03:17,090 --> 00:03:21,140
‫Se a plataforma retornar, faremos o seguinte.

50
00:03:22,250 --> 00:03:29,570
‫Então agora o que precisamos fazer é trazer a variável de distância movida que temos na plataforma MOVE.

51
00:03:29,570 --> 00:03:31,320
‫Na verdade, não precisamos dele dentro da plataforma MOVE.

52
00:03:31,320 --> 00:03:35,960
‫Vou cortá-lo e trazê-lo e colocá-lo na linha antes de nossa declaração de retorno.

53
00:03:35,960 --> 00:03:43,460
‫Normalmente, a instrução return é a última coisa em uma função, porque uma vez que você retornou de uma função, você realmente

54
00:03:43,940 --> 00:03:45,530
‫não faz mais nada.

55
00:03:45,530 --> 00:03:53,930
‫Se eu fosse colocar algo como uma mensagem de log, então eu colocaria você log após minha declaração de retorno com algum tipo

56
00:03:53,930 --> 00:03:54,800
‫de mensagem.

57
00:03:55,430 --> 00:04:01,730
‫Normalmente o que vai acontecer é que você receberá um aviso do seu compilador dizendo que essa linha nunca

58
00:04:01,730 --> 00:04:05,270
‫será alcançada e que você provavelmente não pretendia fazer isso.

59
00:04:05,840 --> 00:04:08,690
‫Portanto, a instrução de retorno geralmente é a última coisa.

60
00:04:09,590 --> 00:04:16,640
‫Então, tendo atravessado a linha que define a distância movida em nossa função de retorno da plataforma, você pode ver

61
00:04:16,850 --> 00:04:22,490
‫que agora está dizendo, ei, eu não tenho um local atual e, bem, o local atual

62
00:04:22,490 --> 00:04:28,070
‫que podemos pegar facilmente, temos defina o local atual antes de chamarmos, caso a plataforma

63
00:04:28,070 --> 00:04:28,550
‫retorne.

64
00:04:28,550 --> 00:04:32,270
‫Então, na verdade, obter localização ativa é exatamente o que queremos.

65
00:04:32,270 --> 00:04:38,690
‫Então, vou colocar isso em vez de uma variável, vou fazer uma chamada para chegar a um local

66
00:04:39,290 --> 00:04:42,170
‫no local e a plataforma deve retornar.

67
00:04:42,170 --> 00:04:48,200
‫Então agora o que temos é que a distância movida é igual ao efeito, uma distância entre a localização inicial

68
00:04:48,200 --> 00:04:50,240
‫e a localização atual do ator.

69
00:04:50,870 --> 00:04:55,760
‫Portanto, se for maior que a distância de movimento configurada, sim, a plataforma deve retornar.

70
00:04:56,090 --> 00:05:01,460
‫É isso que esta função está dizendo e nos permite usá-la em um nível mais alto de abstração de

71
00:05:01,460 --> 00:05:03,620
‫dentro e mover a função da plataforma.

72
00:05:04,280 --> 00:05:09,560
‫Agora você notará que agora está reclamando que não podemos mover a distância para imprimir o overshoot.

73
00:05:09,560 --> 00:05:10,730
‫Bem, isso não é grande coisa.

74
00:05:11,060 --> 00:05:13,730
‫Na verdade, não quero mais imprimir isso.

75
00:05:13,730 --> 00:05:15,440
‫É meio que bagunçando minha função de qualquer maneira.

76
00:05:15,440 --> 00:05:18,170
‫Então eu vou deletar a linha variável de overshoot.

77
00:05:18,170 --> 00:05:23,330
‫Vou deletar a linha get name, vou deletar a mensagem de log porque ela estava

78
00:05:23,330 --> 00:05:26,660
‫lá apenas temporariamente, daí o nome do log temp.

79
00:05:27,350 --> 00:05:28,040
‫Então agora eu me movo.

80
00:05:28,070 --> 00:05:32,150
‫A função da plataforma está começando a parecer muito mais limpa.

81
00:05:32,150 --> 00:05:35,360
‫Podemos ver que estamos fazendo alguma atualização do local aqui.

82
00:05:35,480 --> 00:05:38,390
‫Podemos ver se a plataforma deve retornar e se deve.

83
00:05:38,390 --> 00:05:41,570
‫Em seguida, estamos atualizando o local e invertendo-o.

84
00:05:41,690 --> 00:05:48,440
‫Agora, uma coisa que acho que ficaria um pouco melhor aqui é se tivéssemos uma instrução alt em vez de

85
00:05:48,770 --> 00:05:51,200
‫ter esse monte de código no topo.

86
00:05:51,200 --> 00:05:58,130
‫Portanto, se a plataforma retornar, executaremos isso, caso contrário, executaremos o código normal em termos

87
00:05:58,130 --> 00:05:59,360
‫de avançar.

88
00:05:59,630 --> 00:06:05,660
‫Então lembre-se de que voltamos sua mente para quando falamos sobre a instrução alt, ela vem depois da

89
00:06:05,660 --> 00:06:07,550
‫instrução if e fazemos assim.

90
00:06:07,550 --> 00:06:12,770
‫Após as chaves, temos uma nova linha e digitamos else, depois outra nova linha e abrimos alguns novos parênteses

91
00:06:12,770 --> 00:06:16,820
‫e podemos simplesmente mover esse código que está aqui no topo do nosso tick.

92
00:06:17,240 --> 00:06:20,450
‫Podemos pegá-lo e movê-lo para a instrução alt.

93
00:06:20,450 --> 00:06:22,790
‫Então agora parece bem direto.

94
00:06:22,790 --> 00:06:26,660
‫A plataforma deve retornar e fazer o código que a plataforma retorna mais?

95
00:06:26,990 --> 00:06:30,740
‫Estamos movendo a plataforma para frente com nossa velocidade de plataforma.

96
00:06:30,740 --> 00:06:34,970
‫Agora eu gostaria de desafiá-lo a criar sua própria função com um valor de retorno.

97
00:06:34,970 --> 00:06:38,030
‫Eu gostaria que você adicionasse uma função obter distância movida.

98
00:06:38,030 --> 00:06:41,690
‫Portanto, atualmente calculamos isso em uma variável chamada distância movida.

99
00:06:42,080 --> 00:06:45,620
‫Eu gostaria que você substituísse isso por uma chamada para uma função.

100
00:06:46,250 --> 00:06:53,570
‫Portanto, deve retornar um float porque é assim que o tipo de distância se move, devemos chamá-lo caso a

101
00:06:53,570 --> 00:06:54,350
‫plataforma retorne.

102
00:06:54,360 --> 00:06:58,970
‫Então, em vez de usar os efeitos disso, devemos usar nossa própria implementação.

103
00:06:58,970 --> 00:07:00,230
‫Então, que código devemos?

104
00:07:01,220 --> 00:07:04,040
‫Deve conter o treinador com o qual colocamos?

105
00:07:04,220 --> 00:07:08,900
‫A dica é que já digitamos esse código, então você está apenas copiando e colando na nova

106
00:07:08,900 --> 00:07:09,470
‫função.

107
00:07:09,770 --> 00:07:14,810
‫Mas pense um pouco sobre qual deve ser a expressão de retorno, de modo que o que estamos

108
00:07:14,960 --> 00:07:17,150
‫retornando seja o valor da distância movida.

109
00:07:17,510 --> 00:07:18,950
‫Pause o vídeo e vá em frente.

110
00:07:22,620 --> 00:07:22,920
‫OK.

111
00:07:22,920 --> 00:07:23,580
‫Bem vindo de volta.

112
00:07:24,210 --> 00:07:26,090
‫Então, vamos para a frente do arquivo.

113
00:07:26,100 --> 00:07:33,150
‫Adicionaremos uma nova função aqui para o valor de retorno do voo chamado get distance movido.

114
00:07:33,330 --> 00:07:38,460
‫E então não teremos argumentos entre parênteses e então iremos para nossa plataforma

115
00:07:38,460 --> 00:07:39,090
‫móvel.

116
00:07:39,090 --> 00:07:51,570
‫CP Vamos adicionar um float, uma plataforma móvel, dois pontos, dois pontos a distância movida ou obter a distância movida,

117
00:07:51,570 --> 00:07:53,520
‫devo dizer parênteses.

118
00:07:53,520 --> 00:07:57,810
‫E então vamos colocar um novo conjunto de chaves na próxima linha.

119
00:07:58,470 --> 00:08:04,230
‫E o que queremos retornar é literalmente apenas a expressão que estamos usando para criar nosso float de

120
00:08:04,230 --> 00:08:07,890
‫movimento de distância para que eu possa recortar e colar aqui.

121
00:08:07,890 --> 00:08:14,310
‫Portanto, afeta dois pontos, dois pontos, teste, local inicial, obtenha local ativo e coloque ponto e vírgula no final

122
00:08:14,310 --> 00:08:15,000
‫dessa linha.

123
00:08:15,510 --> 00:08:17,550
‫E isso significa que a plataforma deve retornar.

124
00:08:17,550 --> 00:08:22,320
‫Agora, em vez de ter essa variável de movimento de distância, vou excluir essa linha que está meio concluída.

125
00:08:23,010 --> 00:08:27,300
‫Nós vamos voltar obter distância movida.

126
00:08:28,050 --> 00:08:31,920
‫Parênteses é maior que a distância do movimento.

127
00:08:31,920 --> 00:08:39,600
‫Então, pegamos o que estava entrando em uma variável e colocamos em sua própria função.

128
00:08:39,600 --> 00:08:45,120
‫E isso significa que sempre que quisermos nos referir à distância movida, se quisermos manter essa

129
00:08:45,120 --> 00:08:51,930
‫mensagem de log na plataforma MOVE, podemos facilmente chamar a função, obter a distância movida de qualquer uma das

130
00:08:51,930 --> 00:08:53,700
‫funções em nossa classe.

131
00:08:53,880 --> 00:08:54,390
‫Coisas boas.

132
00:08:54,390 --> 00:09:00,840
‫Então, nesta palestra, aprendemos sobre declarações de retorno e valores de retorno e os usamos para criar duas

133
00:09:00,840 --> 00:09:03,030
‫novas funções em uma classe.

134
00:09:03,060 --> 00:09:04,350
‫Vejo você na próxima palestra.

