Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Swift] Swift의 연산자 총정리 #74

Closed
Suyeon9911 opened this issue Aug 4, 2022 · 3 comments
Closed

[Swift] Swift의 연산자 총정리 #74

Suyeon9911 opened this issue Aug 4, 2022 · 3 comments
Assignees
Labels

Comments

@Suyeon9911
Copy link
Owner

Suyeon9911 commented Aug 4, 2022

  • 띄어쓰기도 중요한 문법 중 하나입니다.
  • A != B 와 A! = B 가 전혀 다른 의미인 것 처럼요 !
  • A > B ? A : B 처럼 잘 띄워쓰기
  1. 할당 연산자 =
  2. 산술 연산자 + - * / %

스위프트의 나머지 연산과 나누기 연산자

  • 스위프트에서는 부동소수점 타입의 나머지 연산까지 지원
  • 나누기 연산은 기존의 프로그래밍 언어처럼 나머지나 소수점을 제외한 정수만을 결괏값으로 반환
  • 스위프트는 데이터 타입에 굉장히 엄격하므로 서로 다른 자료형끼리의 연산을 엄격히 제한
  • 서로 다른 자료형끼리의 연산을 실행하려면 해당 타입으로 변환
let number: Double = 5.0
var result: Double = number.truncatingRemainder(dividingBy: 1.5) //0.5
result = 12.truncatingRemainder(dividingBy: 2.5) // 2.0

var result: Int = 5 / 3 // 1
result = 10 / 3 // 3
@Suyeon9911 Suyeon9911 self-assigned this Aug 4, 2022
@Suyeon9911
Copy link
Owner Author

비교

  • == , >=, <=. > , <, !=, ===,
  • !== : 참조가 같지 않다.
  • ~= : 패턴매치 ?패턴이 매치되는지 확인

참조연산자

  • 유일한 참조타입인 클래스의 인스턴스에서만 참조비교연산자 사용가능
  • 구조체는 ==

삼항연산자

  • 질문 ? a : b
  • 참이면 a 거짓이면 b

범위

  • 폐쇄 범위 : A...B
  • 반폐쇄 범위 : A..<B
  • 단방향 범위 : A... ...A .. < A

부울

  • !B
  • A && B
  • A || B

비트

  • ~A : 비트 반전
  • A & B : AND 논리 연산
  • A | B : OR 논리연산
  • A ^ B : XOR 논리연산
  • A >> B : A비트를 B만큼 비트 이동
  • A << B

4 >> 1 은 오른쪽으로 1만큼 비트 이동 4는 0100이므로 0010인 2가 답이됨
4 << 1 은 왼쪽으로 1000이므로 답은 8
비트 범위를 벗어난 비트는 버려진다.

복합 할당

  • +=
  • -=
  • *=
  • /=
  • %=
  • <<=
  • =

  • &=
  • |=
  • ^=

오버플로 연산자

  • 스위프트는 기본 연산자를 통해 오버플로에 대비할수 있도록 준비해두었다.
  • 오버플로를 자동으로 처리
  • &+ , &- , &* : 오버플로에 대비한 덧셈, 뺄셈, 곱셉 연산

기타 연산자

  • nil 병합 연산자 : A ?? B -> A가 nil이 이니면 A를 반환하고, nil이몀 B를 반환
  • 부호변경 : -A
  • 옵셔널 강제 추출 : O!
  • 옵셔널 : V?

@Suyeon9911
Copy link
Owner Author

연산자 우선순위와 결합방향

  • 우선순위가 높은 연산자는 자신에 비해 우선순위가 낮은 연산자보다 먼저 실행
  • 결합방향도 지정되어있다.
  • 같은 우선순위에 있는 연산자끼리 나열되었을 때 어느 방향부터 그룹지을 것인가
    • 의 결합방향은 왼쪽 . 1+ 2+ 3+ 4 -> 1+2 부터
  • 표준 라이브러리에 우선순위 그룹을 보면된다.

@Suyeon9911
Copy link
Owner Author

사용자정의 연산자

  • 추후에

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

1 participant