Latest web development tutorials

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 da height de propriedade, sendo que ambos são Double tipo.
  • Caminhos dentro de um determinado intervalo, um pacote de start propriedades e length propriedades, sendo que ambos são Int tipo.
  • Sistema tridimensional de que o pacote de coordenadas x , y e z propriedades, três são Double 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.