estrutura Swift
estrutura Swift é o código usado para construir uma estrutura comum e flexível.
Podemos definir as propriedades da estrutura (constantes, variáveis) e adicionar métodos para alargar a estrutura funcional.
C e Objective C é diferente:
Estrutura não precisa incluir o arquivo de implementação e interfaces.
Estrutura nos permite criar um único arquivo, eo sistema irá gerar automaticamente o código para outras interfaces externas.
Estrutura sempre ser replicado por meio de transferência no código, portanto, seu valor não pode ser modificado.
gramática
Nós definimos a estrutura através da palavra-chave struct:
struct nameStruct { Definition 1 Definition 2 …… Definition N }
Exemplos
Nós definimos uma estrutura chamada MarkStruct, estrutura de propriedades para os alunos a marcar três assuntos, o tipo de dados Int:
struct MarkStruct{ var mark1: Int var mark2: Int var mark3: Int }
Podemos chegar a uma estrutura por nome estrutura.
Exemplos da estrutura usando a palavra-chavelet:
import Cocoa struct studentMarks { var mark1 = 100 var mark2 = 78 var mark3 = 98 } let marks = studentMarks() print("Mark1 是 \(marks.mark1)") print("Mark2 是 \(marks.mark2)") print("Mark3 是 \(marks.mark3)")
A saída de execução de programa acima é:
Mark1 是 100 Mark2 是 78 Mark3 是 98
Exemplo, o acesso dos studentMarks "para o desempenho do aluno através do nome de estrutura. membro da estrutura é inicializado para mark1, mark2, mark3, tipo de dados inteiro.
Em seguida, usamos os studentMarks estrutura chavelet () é instanciado e passados para as marcas.
Finalmente, passamos número devalor para acessar o membro da estrutura.
Os valores tradicionais e clonagem de uma estrutura é instanciado pelos seguintes Exemplos de a estrutura:
import Cocoa struct MarksStruct { var mark: Int init(mark: Int) { self.mark = mark } } var aStruct = MarksStruct(mark: 98) var bStruct = aStruct // aStruct 和 bStruct 是使用相同值的结构体! bStruct.mark = 97 print(aStruct.mark) // 98 print(bStruct.mark) // 97
A saída de execução de programa acima é:
98 97
estrutura de aplicação
Em seu código, você pode definir seus personalizados estruturas de tipo de dados.
Exemplos de que a estrutura é sempre definir seus tipos de dados personalizados passados por valor.
De acordo com a regra geral, quando o cumprimento de um ou mais dos seguintes critérios, considere estrutura do edifício:
- O objectivo principal da estrutura é usado para encapsular pequenas quantidades de dados relacionados com os valores simples.
- Razoável esperar que uma atribuição instância estrutura ou de transferência, os dados encapsulados serão copiados, não referenciado.
- Qualquer tipo de valores de propriedade armazenados na estrutura, ele será copiado, não referenciado.
- A estrutura não precisa herdar bens ou outros tipos de comportamento já existe.
Por exemplo, as seguintes situações para o uso da estrutura:
- tamanho geométrica ea forma do pacote de uma
width
propriedade e daheight
de propriedade, sendo que ambos sãoDouble
tipo. - Caminhos dentro de um determinado intervalo, um pacote de
start
propriedades elength
propriedades, sendo que ambos sãoInt
tipo. - Sistema tridimensional de que o pacote de coordenadas
x
,y
ez
propriedades, três sãoDouble
tipo.
Exemplos de a estrutura é passado por valor, em vez de por referência.
import Cocoa struct markStruct{ var mark1: Int var mark2: Int var mark3: Int init(mark1: Int, mark2: Int, mark3: Int){ self.mark1 = mark1 self.mark2 = mark2 self.mark3 = mark3 } } print("优异成绩:") var marks = markStruct(mark1: 98, mark2: 96, mark3:100) print(marks.mark1) print(marks.mark2) print(marks.mark3) print("糟糕成绩:") var fail = markStruct(mark1: 34, mark2: 42, mark3: 13) print(fail.mark1) print(fail.mark2) print(fail.mark3)
A saída de execução de programa acima é:
优异成绩: 98 96 100 糟糕成绩: 34 42 13
O exemplo acima, definimos o markStruct estrutura, três membros da propriedade: mark1, Mark2 e Mark3. Estrutura in vivo utilizando propriedades de membro Utilize o auto palavra-chave.
A partir dos exemplos podemos entender bem a instância estrutura é passado por valor.