Latest web development tutorials

스위프트 연산자

운영자는 수학이나 논리 연산을 수행하는 컴파일러를 얘기하는 데 사용되는 기호입니다.

스위프트는 다음과 같은 연산자를 제공합니다 :

  • 산술 연산자
  • 비교
  • 논리 연산자
  • 비트 연산자
  • 할당 연산자
  • 간격 연산자
  • 다른 연산자

이 장에서는 우리는 당신을 산술 연산자, 관계 연산자, 논리 연산자, 비트 연산자, 대입 연산자와 다른 연산자를 설명합니다.


산술 연산자

다음 표는 스위프트 언어 지원 산술 연산자를 나열 10있는 변수의 변수 B (20) :

운영자 기술
+ 플러스의 A + B (30)에 대한 검색 결과
- 마이너스 A - B 결과 -10
* 곱셈 기호 200 A * B 형 결과
/ 부문 로그인 B / A 2 결과
% 나머지 B % A는 결과가 0 인
++ 증가 ++ (11) 결과
- 감소 할까 .. 결과 9

산술 연산의 간단한 예입니다 :

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)")

위의 프로그램 실행 결과 :

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

비교

다음 표는 비교 연산자 스위프트 언어 지원을 나열 상기 변수 10, B (20) 변수 :

운영자 기술
== 같은 (A == B는) false입니다.
! = 동일하지 않은 (A! = B)는 사실이다.
> 보다 큼 (A> B)는 false입니다.
< 이하 (A <B)는 사실이다.
> = 크거나 같음 (A> = B)는 false입니다.
<= 보다 작거나 같음 (A는 <= B) 사실이다.

비교 연산의 간단한 예는 다음과 같다 :

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)")

위의 프로그램 실행 결과 :

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

논리 연산자

다음 표는 변수 B가 거짓 인 변수 A에 해당하는 스위프트 언어 지원 논리 연산자를 보여줍니다

운영자 기술
&& 논리와. 운영자가 TRUE 인 경우 양측은 TRUE했다. (A && B는) false입니다.
|| 아니면 논리. TRUE 경우 중 적어도 하나의 양쪽에있는 오퍼레이터는 TRUE이다. (A || B는) 사실이다.
! 논리 NOT. 그것은 부울 값을 반전, 그래서 사실은 거짓이 거짓이 참이된다. ! (A && B는) 사실이다.

논리 연산의 간단한 예는 다음과 같다 :

import Cocoa

var A = true
var B = false

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

위의 프로그램 실행 결과 :

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

비트 연산자

: ^ 부정하고, 비트, 또는 비트에 의해하고, 다음 표 예제와 비트 XOR 연산 | 비트 연산자 비트 ~,,, 작동하는 데 사용

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)

:와, B = 13; 두 변수 진에 대응 A = 60의 경우

A = 0011 1100

B = 0000 1101

비트 연산의 경우 :

운영자 기술 도표
비트 단위합니다. 비트 단위 AND 연산자는 두 숫자를 조작하고 새 번호를 반환하기로,이 번호의 각 비트는 두 개의 입력 번호는 1 일까지입니다 필요합니다. (A & B) 결과가 12, 이진 1100 0000
| 비트 단위 또는. 비트 단위 OR 연산자 | 두 숫자를 비교하고 모든 설정이 숫자는 두 입력 번호의 첫 번째와 동일한 조건 (즉, (1)의 어느 하나이거나, 또는 0에서 상이하다 새로운 번호를 반환 1). (A는 | B) 결과는 61이고, 진은 00111101이고
^ 비트 단위 XOR 비트 배타적 OR 두 숫자를 비교 한 다음 숫자를 반환 ^ 연산자,이 번호가 동일한 경우 제로에 다른 번호로 두 개의 입력은 각 비트 조건 1에있는 설정됩니다. (A ^ B)는 49 바이너리 00110001에 대한 결과
~ 비트 연산자 - 각 비트가 반전 작업의 번호. (~ A) -61 결과 이진 2의 보수 형태로 1100 0011이다.
<< 비트 왼쪽. 왼쪽 시프트 연산자 (<<) 피연산자를 지정된 비트의 왼쪽 모든 비트 번호로 이동합니다.

다음 그림 쇼 << 1 11111111 결과 (11111111 하나를 왼쪽). 파란색 숫자는 오렌지 0 공석을 채우는 비트 회색 폐기 비트를 이동하는.

(240) 진에 대한 <<이 결과는 11110000입니다
>> 비트 오른쪽. 모든 오른쪽으로 비트 연산자 (<<) 피연산자 지정된 비트 수를 이동합니다.

다음 그림은 >> 1 11111111 (11111111 오른쪽에 하나) 결과를 보여줍니다. 파란색 숫자는 오렌지 0 공석을 채우는 비트 회색 폐기 비트를 이동하는.

>> 15 0000 1111 이진 시스템에 대한 2 결과

다음은 비트 연산의 간단한 예입니다 :

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)")

위의 프로그램 실행 결과 :

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

할당 연산자

다음 표는 기본 할당 연산자 스위프트 언어를 나열합니다 :

운영자 기술
= 단순 할당 연산자는 왼쪽 피연산자에 할당 오른쪽 오퍼랜드를 지정한다. C = A + B A + B의 연산 결과 C에 할당
+ = 할당 후 추가 전에 피연산자의 좌우 왼쪽 오퍼랜드에 할당 된 추가. C + = A는 C = C + A에 대응
- = 감산 할당 한 후, 왼쪽 피연산자 양측 좌우 피연산자 감산 할당 후. C - = A는 C = C에 해당 -을
* = 그런 다음 할당을 곱하여, 피연산자의 왼쪽과 오른쪽은 왼쪽 피연산자에 할당하기 전에 곱합니다. C * = A는 C = C의 * (A)에 대응
/ = 할당 후 나누어 왼쪽 피연산자 할당 후의 분할 피연산자의 좌우측. C / = A는 동등한 C = C / A입니다
(%) = 할당 한 후 나머지 왼쪽 오퍼랜드에 할당 한 후 나머지 피연산자의 좌우측. C의 % = A는 C = C의 % (A)에 해당합니다
<< = 비트는 할당 후 남아 C는 << = 2 C = C에 해당 << 2
>> = 할당 후 비트 오른쪽 C >> = 2 C = C >> 2에 해당
& = 비트 단위 AND 연산 후 할당 C & = 2 C = C & 2에 해당
^ = 비트 단위 배타적 논리합 연산자 다음 할당 C ^ = 2 C = C ^ 2에 해당
| = 비트 OR 대입 후 C는 | 2 | = 2 C = C에 해당

대입 연산자의 간단한 예입니다 :

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)")
*/

위의 프로그램 실행 결과 :

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

간격 연산자

스위프트는이 범위 연산자를 제공합니다.

운영자 기술
폐쇄 간격 연산자 폐쇄 간격 운영자의 (a ... b)는 정의 간격이 나에 대한 모든 값을 포함 (포함하여 a와 b), (B)는 동일 같거나 커야합니다. 모든 값의 범위 폐쇄 구간 반복 조작은 매우 유용와 같이 피 루프 : 1 ... 5 범위, 3, 2, 1 4 5
반 개방 구간 연산자 (반 개방 간격 .. 1 .. <5 구간의 값을 1, 2, 3, 4

간격 산술의 간단한 예입니다 :

import Cocoa

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

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

위의 프로그램 실행 결과 :

闭区间运算符:
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

다른 연산자

스위프트는 모노 -, 디 -, 및 원 연산자로 연산자의 다른 유형을 제공한다.

  • 단일 운영 개체 조작에 단항 연산자 (예 : -a ). 단항 연산자 연산자 분 전후 운영자, 운영자가 필요 사전 운영 (예 : 개체 직전 !b 즉시 (예 : 오브젝트 후 동작, 후면 운영자) i++ ).
  • 이진 연산자는 두 운영 개체 (예 : 운영 2 + 3 그들은 두 피연산자 사이에 나타나는)이 홈에 있습니다.
  • 세 개의 원 조작 대상을 조작 운영자 및 C 언어, 스위프트 만 삼원 연산자 원 연산자이다 ( a ? b : c ).
운영자 기술
단항 마이너스 디지털 앞에 추가 - 접두어 -3 또는 -4
단항 플러스 디지털 돈 + 접두사 추가 6 결과 6
삼항 연산자 ? 조건 X : Y 당신이 추가하는 경우, 그렇지 않으면, Y X의 값에 해당하는

다음은 1 달러, 바이너리 및 삼항 작업의 간단한 예입니다 :

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 )")

위의 프로그램 실행 결과 :

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

연산자 우선 순위

표현식에서 데이터 객체의 다양한 데이터 유형과 연결 상이한 복수의 조작자를 포함 할 수있다식이 다양한 작업을 갖기 때문에, 동작의 다른 순서가도 오동작 오류 다른 결과를 가질 수있다 때 때문에 일정한 순서에 따라 다양한 작업을 포함하는 발현 결과의 정확성 및 합리성 동작의 고유성을 보장하기 위해 결합해야하는 경우.

우선 위에서 아래로 내림차순으로 상위는 콤마 연산자는 낮은 우선 순위가 가장 높은 우선 순위를 갖는다.

같은 우선 순위, 계산의 결합 순서에 따라. 대부분의 작업은 왼쪽에서 오른쪽으로 계산, 세 개의 우선 순위는 단항 연산자, 조건 연산자, 대입 연산자이고, 오른쪽에서 왼쪽으로 조합입니다.

기본 우선 순위는 기억해야합니다 :

  • 이항 연산자보다 단항 최적의 포인터. 기호로.
  • 먼저 곱셈과 뺄셈 후 분할 (계수).
  • 마지막 비트 컴퓨팅 후 첫 산술 시프트 연산. 특히주의하십시오 : << 1 2 3 + 7 (1 << (3 + 2)) 및 7에 해당
  • 최종 연산 논리 연산
운영자 유형 운영자 바인딩 방향
식 평가 () []. EXPR ++ expr-- 왼쪽에서 오른쪽
단항 연산자

* + -! ~ ++ EXPR --expr

* / %

+ -

>> <<

<> <=> =

==! =

오른쪽에서 왼쪽으로
비트 연산자

^

|

&&

||

왼쪽에서 오른쪽
삼항 연산자 ? : 오른쪽에서 왼쪽으로
할당 연산자 = + = - = * = / = % = >> = << = & = ^ = | = 오른쪽에서 왼쪽으로
콤마 , 왼쪽에서 오른쪽

다음은 연산자 우선 순위의 간단한 예입니다 :

import Cocoa

var A = 0

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

위의 프로그램 실행 결과 :

A 的值为:4

분석의 예 :

연산자 우선 순위에 따르면, 다음과 같은 식에 해당 해결합니다 위의 단계의 동작을 프로그래밍 할 수 있습니다 :

2 + ((3 * 4) % 5)

계산의 첫 번째 단계는 : (3 * 4) (12) = 그래서 표현은 동일합니다 :

2 + (12 % 5)

두 번째 단계는 12 % 5 = 2를 계산하기 때문에 표현은 동일합니다 :

2 + 2

이때 용이 네 계산 결과를 알 수있다.