Development record of developer who study hard everyday.

레이블이 스위프트연산자인 게시물을 표시합니다. 모든 게시물 표시
레이블이 스위프트연산자인 게시물을 표시합니다. 모든 게시물 표시
, ,

[번역] Swift Basic Operators 스위프트 기본 연산자

 스위프트 기본 연산자 (Basic Operators)


Swift 공식문서 Basic Operators 편 번역입니다.

할당연산자(Assignment Operator)

let b = 10 var a = 5 a = b // a is now equal to 10

할당연산자는(=) 값을 초기화하거나 변경할 때 사용한다.


let (x, y) = (1, 2) // x is equal to 1, and y is equal to 2

오른쪽의 값인 튜플은 여러개의 상수나 변수로 분해될 수 있다.


if x = y { // This isn't valid, because x = y doesn't return a value. }

C와 Object-C와 다르게 스위프트의 할당 연산자는 값을 리턴하지 않는다.

위의 코드는 잘못되었다.


수학연산자(Arithmetic Operators)

  • Addition +
  • Subtraction -
  • Multiplication *
  • Division /
1 + 2 // equals 3 5 - 3 // equals 2 2 * 3 // equals 6 10.0 / 2.5 // equals 4.0

C와 Object-C 와 다르게 스위프트의 수학 연산자는 기본값으로 오버플로우를 허용하지 않는다.

스위프트의 오버플로우 연산자로 오버플로우가 발생할 때 정책을 선택할 수 있다.


"hello, " + "world" // equals "hello, world"

+ 연산자는 String값을 연결할 때 사용할 수 있다.


나머지 연산자(Remainder Operator)

나머지연산자(a % b)는 얼마나 많은 b를 곱해야 a가 되는지를 수행하고 나머지를 리턴한다.

9 % 4 // equals 1


a % b를 계산할 때 수행하는 식은 아래와 같다.

a = (b x some multiplier) + remainder

따라서 같은 방식으로 아래 예제의 값은 -1이다.(-9 = (4 x -2) + -1)

-9 % 4 // equals -1


단일 마이너스 연산자(Unary Minus Operator)

let three = 3 let minusThree = -three // minusThree equals -3 let plusThree = -minusThree // plusThree equals 3, or "minus minus three"


단일 플러스 연산자(Unary Plus Operator)

let minusSix = -6 let alsoMinusSix = +minusSix // alsoMinusSix equals -6


복합 할당 연산자(Compound Assignment Operators)

C언어와 같이 스위프트는 다른 연산자와 할당 연산자를 결합한 compound assignment operator를 제공한다.

var a = 1 a += 2 // a is now equal to 3


비교연산자(Comparison Operators)

  • 같다 ==
  • 같지 않다 !=
  • 크다 >
  • 작다 <
  • 크거나 같다 >=
  • 작거나 같다 <=

삼원 조건 연산자(Ternary Conditional Operator)


삼원 조건 연산자는 if-else 문의 축약형이다.

let contentHeight = 40 let hasHeader = true let rowHeight = contentHeight + (hasHeader ? 50 : 20) // rowHeight is equal to 90

위의 코드는 테이블 행의 높이를 계산하는 예제이다.

행이 header를 가지면 행의 높이는 contentHeight보다 50 포인트 높아야만한다.

헤더를 가지지 않으면 20 포인트 높아야만한다.


nil 합체 연산자(Nil-Coalescing Operator)


nil-coalescing operator(a ?? b)연산자는 Optional이 값을 가진다면 값을 벗겨낸다.

또는 a가 nil이면 b를 기본값으로 반환한다.

b는 반드시 a안에 저장된 타입과 같아야한다.


a != nil ? a! : b

??연산자는 위 식의 축약형이다.


닫힌 범위 연산자(Closed Range Operator)


닫힌 범위 연산자(a...b)는 a에서 b까지의 범위를 정의한다.


반 열림 범위 연산자(Half-Open Range Operator)


반 열림 범위 연산자(a..<b)는 a에서 b까지 범위를 정의한다. 하지만 b를 포함하지 않는다.

a는 b보다 크면 안되고 a와 b가 같으면 빈값을 나타낸다.

let names = ["Anna", "Alex", "Brian", "Jack"] let count = names.count for i in 0..<count { print("Person \(i + 1) is called \(names[i])") } // Person 1 is called Anna // Person 2 is called Alex // Person 3 is called Brian // Person 4 is called Jack


한 방향 범위(One-Sided Ranges)


닫힌 범위 연산자는 한 방향으로 가능한한 계속되는 범위를 나타낸다.

for name in names[2...] { print(name) } // Brian // Jack for name in names[...2] { print(name) } // Anna // Alex // Brian


논리 연산자(Logical Operators)

 
논리 연산자는 Boolean 값을 수정하거나 합친다.

  • Logical NOT (!a)
  • Logical AND (a && b)
  • Logical OR (a || b)

명백한 괄호(Explicit Parentheses)


복잡한 식을 읽기 쉽게하기위해 때때로 괄호를 포함하는게 유용하다.



















Share:
Read More