Latest web development tutorials

opérateurs Swift

Un opérateur est un symbole, utilisé pour indiquer au compilateur d'effectuer une des opérations mathématiques ou logiques.

Swift fournit les opérateurs suivants:

  • Les opérateurs arithmétiques
  • comparaison
  • opérateurs logiques
  • opérateurs sur les bits
  • Opérateurs d'affectation
  • opérateurs d'intervalle
  • D'autres opérateurs

Ce chapitre, nous allons vous expliquer les opérateurs arithmétiques, des opérateurs relationnels, les opérateurs logiques, les opérateurs de bits, opérateur d'affectation et d'autres opérateurs.


Les opérateurs arithmétiques

Le tableau suivant répertorie les opérateurs arithmétiques de soutien linguistique Swift, dont 10 variable A variable B 20:

opérateurs description Exemples
+ plus Résultats pour A + B 30
- moins A - résultats B -10
* signe de multiplication A résultats * B pour 200
/ Signe de division B / A 2 résultats
% reste B% Un résultat est 0
++ incrément A ++ 11 résultats
- décroissance résultat A-- 9

Exemples

Voici un exemple simple d'opérations arithmétiques:

import Cocoa

var A = 10
var B = 20

print("A + B 结果为:\(A + B)")
print("A - B 结果为:\(A - B)")
print("A * B 结果为:\(A * B)")
print("B / A 结果为:\(B / A)")
A++
print("A++ 后 A 的值为 \(A)")
B--
print("B-- 后 B 的值为 \(B)")

Les résultats de l'exécution du programme ci-dessus:

A + B 结果为:30
A - B 结果为:-10
A * B 结果为:200
B / A 结果为:2
A++ 后 A 的值为 11
B-- 后 B 的值为 19

comparaison

Le tableau suivant dresse la liste des opérateurs de comparaison Swift support de la langue, dans laquelle les variables A 10, B 20 variables:

opérateurs description Exemples
== égal (A == B) est fausse.
! = N'est pas égal (A! = B) est vrai.
> plus de (A> B) est fausse.
< moins que (A <B) est vrai.
> = Supérieur ou égal (A> = B) est fausse.
<= Inférieur ou égal (A <= B) est vrai.

Exemples

Voici un exemple simple d'opérations de comparaison:

import Cocoa

var A = 10
var B = 20

print("A == B 结果为:\(A == B)")
print("A != B 结果为:\(A != B)")
print("A > B 结果为:\(A > B)")
print("A < B 结果为:\(A < B)")
print("A >= B 结果为:\(A >= B)")
print("A <= B 结果为:\(A <= B)")

Les résultats de l'exécution du programme ci-dessus:

A == B 结果为:false
A != B 结果为:true
A > B 结果为:false
A < B 结果为:true
A >= B 结果为:false
A <= B 结果为:true

opérateurs logiques

Le tableau suivant présente le support de la langue Swift opérateurs logiques, où la variable A est vrai, la variable B est fausse:

opérateurs description Exemples
&& Logique et. Si l'opérateur est TRUE deux côtés était vrai. (A && B) est fausse.
|| Ou logique. Si l'opérateur sur les deux côtés d'au moins un des TRUE était TRUE. (A || B) est vrai.
! NON logique. Il inverse la valeur booléenne, si vrai devient faux, faux devient vrai. ! (A && B) est vrai.

Voici un exemple simple de l'opération logique:

import Cocoa

var A = true
var B = false

print("A && B 结果为:\(A && B)")
print("A || B 结果为:\(A || B)")
print("!A 结果为:\(!A)")
print("!B 结果为:\(!B)")

Les résultats de l'exécution du programme ci-dessus:

A && B 结果为:false
A || B 结果为:true
!A 结果为:false
!B 结果为:true

opérateurs sur les bits

Opérateurs binaires de bits utilisés pour faire fonctionner, ~, &, |, ^ ont été annulés, et le bit, ou à peu et, au niveau du bit opération XOR avec les exemples de tableau suivant:

p q p & q p | q p ^ q
0 0 0 0 0
0 1 0 1 1
1 1 1 1 0
1 0 0 1 1

Si A = 60 et B = 13; deux variables correspondant au binaire est:

A = 0011 1100

B = 0000 1101

Pour les opérations de bits:

opérateurs description diagramme Exemples
& Bitwise et. Avec Bitwise opérateur AND pour fonctionner avec deux numéros, puis retourne un nouveau numéro, chaque bit de ce nombre nécessite deux nombres d'entrée ne sont que de 1 à 1. (A & B) résultat est 12, le binaire est 0000 1100
| Bitwise ou. Bitwise opérateur OR | comparer deux nombres, puis retourne un nouveau numéro tout ensemble ce nombre est les mêmes conditions que le premier des deux nombres d'entrée sont différents de zéro (qui est, un quelconque de 1, ou sont 1). (A | B), le résultat est de 61, le binaire est 00111101
^ Bitwise XOR au niveau du bit opérateur ^ comparer deux nombres et retourne un nombre OU exclusif, ce nombre est fixé à chaque Etat de bit 1 sont deux entrées avec un nombre différent si égal à zéro. (A ^ B) résulte pour 49 binaires à 00110001
~ Opérateurs binaires - pour un certain nombre d'opérations chaque bit inversé. (~ A) -61 résultat, le binaire est de 1100 0011 dans la forme de complément à 2.
<< Bitwise gauche. L'opérateur de décalage à gauche (<<) se déplace à l'ensemble le nombre bits gauche de bits opérandes spécifiés.

Les montre la figure suivante << 1 11111111 (11111111 gauche) résultats. chiffres bleus déplacés bits bits de gris rejetés, combler les postes vacants à l'orange 0.

A << 2 résultats pour 240 binaire est 11110000
>> Bitwise droite. Tous les bits à droite et déplacer le nombre de bits opérateur (<<) opérande spécifiées.

La figure suivante montre >> 1 11111111 (11111111 droite) résultats. chiffres bleus déplacés bits bits de gris rejetés, combler les postes vacants à l'orange 0.

A >> 2 résultats pour 15 0000 1111 système binaire

Ce qui suit est un exemple simple des opérations de bits:

import Cocoa

var A = 60  // 二进制为 0011 1100
var B = 13 // 二进制为 0000 1101

print("A&B 结果为:\(A&B)")
print("A|B 结果为:\(A|B)")
print("A^B 结果为:\(A^B)")
print("~A 结果为:\(~A)")

Les résultats de l'exécution du programme ci-dessus:

A&B 结果为:12
A|B 结果为:61
A^B 结果为:49
~A 结果为:-61

Opérateurs d'affectation

Le tableau suivant présente l'opérateur d'affectation de base langue Swift:

opérateurs description Exemples
= opérateur d'affectation simple, précise l'opérande droit attribué à l'opérande de gauche. result = A + B A + B opération C se voit attribuer à C
+ = Ajout d'après la cession, les côtés gauche et droit de l'opérande avant d'ajouter assignés à l'opérande de gauche. C = + A correspond à C = C + A
- = Après affectation de soustraction, les opérandes de gauche et de droite des deux côtés de l'opérande gauche après soustraction assignés. C - = A correspond à C = C - A
* = Ensuite, la multiplication de la cession, les côtés gauche et droit des opérandes sont multipliés avant l'affectation à l'opérande de gauche. C * = A correspond à C = A *
/ = Divisé après la cession, les côtés gauche et droit de l'opérande de division après affectation à l'opérande de gauche. C / A = est équivalent C = C / A
% = Restant après l'affectation, les côtés gauche et droit de l'opérande reste après l'assignation de l'opérande gauche. % C = A est l'équivalent de C = C% A
<< = Bitwise gauche après affectation C << = 2 correspond à C = C << 2
>> = Bitwise droit après la cession C >> = 2 est équivalent à C = C >> 2
& = Bitwise ET cession après l'opération C & = 2 correspond à C = C & 2
^ = Bitwise OU exclusif opérateur puis assigné C ^ = 2 est équivalent à C = C ^ 2
| = Bitwise OU cession après C | = 2 correspond à C = C | 2

Voici un exemple simple de l'opérateur d'affectation:

import Cocoa

var A = 10
var B = 20
var C = 100

C = A + B
print("C 结果为:\(C)")

C += A
print("C 结果为:\(C)")

C -= A
print("C 结果为:\(C)")

C *= A
print("C 结果为:\(C)")

C /= A
print("C 结果为:\(C)")

//以下测试已注释,可去掉注释测试每个实例
/*
C %= A
print("C 结果为:\(C)")


C <<= A
print("C 结果为:\(C)")

C >>= A
print("C 结果为:\(C)")

C &= A
print("C 结果为:\(C)")

C ^= A
print("C 结果为:\(C)")

C |= A
print("C 结果为:\(C)")
*/

Les résultats de l'exécution du programme ci-dessus:

C 结果为:30
C 结果为:40
C 结果为:30
C 结果为:300
C 结果为:30

opérateurs d'intervalle

Swift offre deux opérateurs de gamme.

opérateurs description Exemples
Opérateurs intervalle fermé opérateur intervalle fermé (a ... b) un intervalle défini contient toutes les valeurs de A à B (y compris a et b), b doit être supérieur ou égal a. Fermé opérateur d'itération intervalle dans une gamme de toutes les valeurs est très utile, comme dans le boucle for-in: 1 ... 5 gamme est 1, 2, 3, 4 et 5
opérateur intervalle semi-ouvert Semi-ouverte intervalle (a .. 1 .. <5 valeur de l'intervalle de 1, 2, 3 et 4

Voici un exemple simple de l'arithmétique d'intervalle:

import Cocoa

print("闭区间运算符:")
for index in 1...5 {
    print("\(index) * 5 = \(index * 5)")
}

print("半开区间运算符:")
for index in 1..<5 {
    print("\(index) * 5 = \(index * 5)")
}

Les résultats de l'exécution du programme ci-dessus:

闭区间运算符:
1 * 5 = 5
2 * 5 = 10
3 * 5 = 15
4 * 5 = 20
5 * 5 = 25
半开区间运算符:
1 * 5 = 5
2 * 5 = 10
3 * 5 = 15
4 * 5 = 20

D'autres opérateurs

Swift offre d'autres types d'opérateurs, par exemple un mono-, di-, et l'opérateur ternaire.

  • Les opérateurs unaires sur une manipulation d'objets d'exploitation unique (par exemple -a ). opérateurs exploitant de l' opérateur minute pré et post unaires, les opérateurs doivent effectuer une pré-exploitation immédiatement avant l'objet (comme !b ), opérateur arrière pour une opération immédiatement après l'objet (comme i++ ).
  • Les opérateurs binaires fonctionnent les deux objets d' exploitation (tels que 2 + 3 ), il est dans la maison, comme ils apparaissent entre les deux opérandes.
  • Trois opérateur ternaire opérant la cible de l' opération, et langages C, Swift est seulement un opérateur ternaire, est opérateur ternaire ( a ? b : c ).
opérateurs description Exemples
moins unaire Ajouter un front numérique - Prefix -3 Ou -4
Plus unaire L'argent numérique Ajouter + Prefix +6 Résultat 6
opérateur ternaire ? Condition X: Y Si vous ajoutez est vrai, la valeur de X, sinon Y

Ce qui suit est un dollar, un exemple simple des opérations binaires et ternaires:

import Cocoa

var A = 1
var B = 2
var C = true
var D = false
print("-A 的值为:\(-A)")
print("A + B 的值为:\(A + B)")
print("三元运算:\(C ? A : B )")
print("三元运算:\(D ? A : B )")

Les résultats de l'exécution du programme ci-dessus:

-A 的值为:-1
A + B 的值为:3
三元运算:1
三元运算:2

Préséance de l'opérateur

Dans une expression peut contenir une pluralité de différents opérateurs de connexion avec différents types d'objets de données de données, puisque l'expression a une variété d'opérations, un ordre différent des opérations peut avoir des résultats différents, même erronée erreur d'opération, parce que quand quand une expression contenant une variété d'opérations, selon un certain ordre doit être combiné afin d'assurer la rationalité et l'exactitude des résultats, le caractère unique de l'opération.

Priorité dans l'ordre décroissant de haut en bas, en haut a la plus haute priorité, l'opérateur virgule a la priorité la plus basse.

Le même niveau de priorité, selon l'ordre de liaison de calcul. La plupart des opérations sont calculées à partir de gauche à droite, seuls trois priorités sont de droite à gauche combinaison, ils sont des opérateurs unaires, opérateurs conditionnels, des opérateurs d'affectation.

Les priorités de base doivent se rappeler:

  • pointeur Optimal, unaire que les opérateurs binaires. Comme le signe.
  • Première multiplication et la division (module) après soustraction.
  • Première opération de décalage arithmétique après le dernier bit informatique. S'il vous plaît prêter une attention particulière à: << 1 2 & 3 + 7 est équivalent à (1 << (3 + 2)) et 7
  • opération finale de logique de calcul
Type d'opérateur opérateurs direction Reliure
Évaluation de l'expression () []. Expr ++ expr-- De gauche à droite
opérateur unaire

* & + - ~ ++ Expr --expr

* /%

+ -

>> <<

<> = <=>

==! =

De droite à gauche
opérateurs sur les bits

&

^

|

&&

||

De gauche à droite
opérateur ternaire ?: De droite à gauche
Opérateurs d'affectation = + = - = * = / =% = >> = << = & = ^ = | = De droite à gauche
virgule , De gauche à droite

Ce qui suit est un exemple simple de la priorité des opérateurs:

import Cocoa

var A = 0

A = 2 + 3 * 4 % 5
print("A 的值为:\(A)")

Les résultats de l'exécution du programme ci-dessus:

A 的值为:4

Desexemples d'analyse:

Selon la priorité des opérateurs, vous pouvez programmer le fonctionnement des étapes ci-dessus résout l'expression suivante est équivalente à:

2 + ((3 * 4) % 5)

La première étape dans le calcul suivant: (3 * 4) = 12, de sorte que l'expression est équivalent à:

2 + (12 % 5)

La deuxième étape pour calculer 12% 5 = 2, de sorte que l'expression est équivalent à:

2 + 2

A ce stade, on peut facilement voir que les résultats calculés de quatre.