Pergunta

Nos exemplos ator Scala eu vi onde uma mensagem sem parâmetros é enviado para um ator (como este ), case classes (ou case objects) foram criados e, em seguida, usado como mensagens. Símbolos funcionar tão bem e olhar um mais puro pouco e, depois de ler um livro sobre Erlang, parecer mais natural. Presumo que a igualdade símbolo iria trabalhar para atores remotos.

Para mensagens com aulas de caso parâmetros seria a escolha óbvia, por isso talvez a consistência entre tipos de mensagens é um problema?

Existem razões para ir para qualquer abordagem?

Foi útil?

Solução

Eu não acho que Symbols são um substituto para o uso de classes case. Na verdade, eu não sou inteiramente certo o que usar Symbol é de todo, uma vez que não tem o poder de símbolos em outros idiomas (por exemplo, Ruby, Smalltalk) -. É apenas uma internado Cordas

Por exemplo, no exemplo leilão padrão, é difícil ver como você iria representar a complexidade de uma compra / venda utilizando símbolos sozinho.

Quanto case objetos , eu também acredito que estes são preferíveis aos símbolos. Por exemplo, eles podem ser exemplos de traits etc, e, por conseguinte, fornecer a funcionalidade.

Outras dicas

A resposta curta é a verificação em tempo de compilação.

símbolos Mesmo pensamento pode ser usado como mensagens e eles são ainda mais sucinta do que objetos de caso (não é necessário defini-los), compilador não pode detectar os símbolos com erros ortográficos e você terá um tempo difícil descobrir por que os atores não estão recebendo mensagens específicas quando é suposto.

Se as classes de casos e / ou objetos são usados ??como mensagens, compilador irá lhe dizer se você está tentando enviar e / ou receber mensagens não-existentes antes do programa está ainda executado.

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