Retornar "nulo" na função de tipo de retorno primitivo?

idolatrar:

Eu tenho uma função que retorna um intvalor para uma determinada chave (de a HashMap<String, Integer>). Se a chave não existir, desejo retornar algo que o chamador pode verificar. Parece que, mais comumente, isso seria um tipo de coisa " retorna -1 se a chave não existir ". No entanto, eu não posso reservar -1 para o efeito no meu caso, porque os números negativos são valores possíveis para as chaves que fazer existir.

As únicas outras opções que consegui apresentar são as seguintes:

  1. Altere o tipo de retorno para Integerclasse de wrapper e verifique se hánull
  2. Retorne algo muito improvável, como Integer.MIN_VALUE
  3. Faça uma boolean keyExists(String key)função adicional que sempre deve ser chamada primeiro
  4. Mudar para floate uso NaN, em vez

Estou escrevendo isso em Java, mas pessoas com origens em linguagens semelhantes podem postar. Obrigado!

Hut8:

A primeira opção é, na minha opinião, a mais limpa. Números mágicos como -1 e Integer.MIN_VALUE são meio confusos, especialmente quando os valores não são intuitivos. Essa é uma solução C idiomática, pela qual os desenvolvedores Java irão odiá-lo. Dependendo do que você realmente está usando, você também pode lançar uma "KeyNotFoundException" se isso acontecer apenas em circunstâncias "excepcionais".

Este artigo é coletado da Internet.

Se houver alguma infração, entre em [email protected] Delete.

editar em
0

deixe-me dizer algumas palavras

0comentários
loginDepois de participar da revisão

Artigos relacionados

C ++. Como retornar um ponteiro nulo em vez do tipo de retorno da função?

Por que o PhpStorm permite o tipo de retorno nulo na função usando rendimento?

Aplicar tipo de retorno na função

O tipo de retorno ReflectionFunction é nulo nas funções integradas

Retornar um mapa na função de nuvem Firebase é nulo

Tipo de retorno na expressão lambda, função Reduzir

Segundo tipo de retorno na declaração da função?

erro Tipo de retorno ausente na função em nodejs

Tipo de retorno anulável na função oracle

Modelo com tipo de retorno dimensionado na função C ++?

Tipo de retorno ausente na função em Jest / eslint

Não é possível retornar nulo de uma função de tipo não anulável

Preciso de uma maneira de retornar de uma função sem precisar retornar o "tipo de retorno"

Preciso de uma maneira de retornar de uma função sem precisar retornar o "tipo de retorno"

Função de retorno do tipo de referência: como retornar o objeto (opcional)

Como retornar o valor do retorno de chamada na função de resolução do Graphql?

A função deve retornar o tipo de um parâmetro não nulo

Cast lambda com tipo de retorno não nulo para ponteiro de função

Texto de tipo está ignorando nulo ou indefinido como possibilidade de retorno de função

Como retornar um erro de uma função de valor de retorno na linguagem C

Typescript - Tipo de retorno da função se eu quiser retornar o objeto

Como escrever teste de unidade para função com tipo de retorno nulo

RxJava: como retornar o tipo correto de nulo

A função retorna nulo quando o valor de retorno é do tipo enum

Reflexão sobre métodos com um tipo de retorno numérico primitivo

Como mapear e coletar o tipo de retorno primitivo usando Java 8 Stream

Problema de retorno de chamada: não é possível retornar um valor de um método com tipo de resultado nulo

Um valor nulo não pode ser atribuído a um erro de tipo primitivo (Spring / Hibernate)

Diferença entre o tipo de retorno nulo e nenhum tipo de retorno

TOP lista

quentelabel

Arquivo