1. Estilo de nomeação
Se você não tiver certeza sobre o estilo de nomenclatura de um tipo, poderá usar o estilo de nomenclatura java.
- Nomes usam camelCase (não use sublinhados)
- O tipo começa com uma letra maiúscula
- Métodos e propriedades começam com letra minúscula
- Recuo com 4 espaços
- Funções públicas devem ter documentação
2. dois pontos
Deve haver um espaço antes dos dois pontos entre um tipo e uma superclasse, e nenhum espaço é necessário antes dos dois pontos entre uma instância de um tipo e um tipo.
interface Foo<out T : Any> : Bar {
fun foo(a: Int): T
}
3. Expressões lambda
Em uma expressão lambda, deve haver um espaço ao redor das chaves e da seta; além disso, o lambda deve estar fora dos parênteses o máximo possível.
list.filter { it > 10 }.map { element -> element * 2 }
As expressões lambda devem ser curtas e não aninhadas. É recomendável usá-la em vez de declarar parâmetros explicitamente; em expressões lambda aninhadas, os parâmetros devem ser declarados explicitamente.
4. formato do cabeçalho da classe
Se uma classe tiver apenas alguns parâmetros, a classe poderá ser escrita em uma linha.
class Person(id: Int, name: String)
Quando uma classe possui vários parâmetros, esses parâmetros devem ser exibidos em uma nova linha e recuados, e o ) dessa classe também deve começar em uma nova linha; quando essa classe herda de outra classe ou implementa uma interface, os parâmetros de seu pai classe deve estar em uma linha.
class Person(
id: Int,
name: String,
surname: String
) : Human(id, name) {
// ...
}
No caso de herdar a classe e implementar a interface ao mesmo tempo, a classe pai deve ser escrita na frente e a interface deve ser escrita na parte de trás.
class Person(
id: Int,
name: String,
surname: String
) : Human(id, name),
KotlinMaker {
// ...
}
Além disso, os parâmetros em construtores também podem ter recuo duplo, ou seja, recuo com 8 espaços.
5.Unidade
Se uma função retornar Unit, o tipo de retorno deve ser omitido.
fun foo() {
...
}
6. Regras de uso prioritário para funções e propriedades
Em alguns casos, funções e propriedades somente leitura são intercambiáveis. Embora suas semânticas sejam semelhantes, às vezes é melhor usar propriedades e, nesses casos, usar propriedades em vez de funções:
- nenhuma exceção é lançada;
- A complexidade do espaço é O(1);
- Pequena quantidade de computação (ou armazenada em cache após a primeira execução)
- O valor de retorno após cada execução é o mesmo