Pergunta

Eu entendo o que: Estado / faz /. Ele cria um campo, como em Java, em sua classe. O que eu não entendo é o que é o ponto disso? Parece que eu só vê-lo feito com aulas Clojure-gerados que se estendem outras classes. http://www.fatvat.co.uk/2009/ 05 / clojure-e-robocode.html sendo um exemplo. Eu não sei Java, e eu não estou muito bem versado em Programação Orientada a Objetos. Alguém pode explicar o ponto de:? estado para mim, e onde tudo se encaixa com interoperabilidade Java

Muito obrigado!

NOTA: Quando eu digo: estado, eu estou me referindo (: gen-classe: Estado)

Foi útil?

Solução 3

Eu falei sobre isso com hiredman no canal #Clojure IRC, e ele me disse que o ponto principal dele é um estado por instância. Isso faz sentido.

Outras dicas

: Estado é simplesmente uma maneira de compartilhar alguns dados entre as funções geradas como parte de gen-classe. Pense nisso como sendo exatamente o mesmo que os dados de instância de um objeto.

Mais infomation sobre a state e como inicializar ele pode ser encontrado o artigo gen de classe - como ele funciona e como usá-lo

A partir do artigo:

  • :state define um método que irá retornar o estado do objeto.
  • :init define o nome do initialiser. Esta é uma função que tem de devolver um vector. O primeiro elemento é novamente um vector de argumentos para o construtor da classe super. No nosso caso, este é apenas o vector vazio. O segundo elemento é o estado do objeto.

Em resumo, init retorna o estado do objeto e é chamado quando o objeto é instanciado. state é um método na classe, em oposição a uma função, que irá devolver o mesmo valor devolvido como o segundo elemento no vector retornado por init.

O artigo, em seguida, passa a mostrar como usar um átomo de ser capaz de alterar o estado do objeto, se necessário.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top