2.各種演算子(Operator)


演算子は、値のチェック、変更、およびマージに使用される記号またはフレーズです.
swiftにはC言語では触れない範囲演算子があります.

用語


1.演算子は、単項(unary)、二項(binary)、三項(teranry)演算子に分けられます.
-a, !b // 단항연산자 예시
// 다음과 같이 단일항목에 동작한다. 단항접두사 연산자는 값 바로 앞에 위치함.

2 + 3 // 이항 연산자 예시
//두 개의 항목에 동작하고 2개의 항목사이에 위치하여 위치는 고정이다.

a ? b : c // 삼항 연산자의 예시
//삼항 연산자의 예시는 위 하나다. 조건에 따라서 피연산자에 영향을 준다.

代入演算子


1.代入演算子、a=bはbの値で初期化または更新される.
let b = 10
var a = 3
a = b
//이런식으로 선언해주게 되면 a의 값은 b로 업데이트 된다.
2.代入の利点がtupleである場合、tuple要素は複数の定数と変数に分解することができる.
let (x, y) = (1, 2)
//이런 경우 x = 1, y = 2로 다음과 같이 초기화 된다

算術演算子


1.swiftは、すべての数値タイプに4つの基本演算子(加算、減算、乗算、除算)を提供します.
1+2
1-2
2*3
10.0/2.0
//다음과 같이 모든 숫자타입에 대해서 산술 연산자를 제공한다.
2.加算演算子は文字列の加算もサポートします.
"hello" + "world"

残りの演算子


1.残りの演算子は、除算後の残りを計算します.
9%4 = 1 // 다음과 같이 4*2를 뺀 나머지 1을 반환한다.
2.負数剰余演算の場合、対倍数の剰余を返します.
-9%4 // -1을 반환한다. 이유는. -4*2 + (-1) 이기 떄문이다. 
//나머지 연산자의 경우 나누는 수에 음수가 들어와도 이는 절대값 취급되고, 음수 기호는 무시된다.

単項マイナス記号とプラス記号演算子


1.数値の記号は接頭辞で変更できます.
let three = 3
let minus = -three
//다음과 같이 선언하면 minus의 값은 -3을 가지게 된다.
//단항 더하기 연산자는 변경없는 값을 그대로 반환한다.

let plus = +minus
//이 경우 plus값은 -3을 그대로 유지한다.

複合代入演算子


1.複合代入演算子は+=、-=であり、加算と減算の略である.
var a = 1
a += 1
// 이 경우 a = 2가 된다.
// a += 1은 a = a+1 의 줄임으로 사용된 것이다.
2.複合代入演算子は値を返さない.
let b = a += 2 코드를 작성할 수 없다. 연산 그 자체로 기능한다.

比較演算子


1.sweeftは、次のコード例に示すように、複数の比較演算子を提供します.
a == b // 같음
a != b // 다름
a > b // 큼
a < b // 작음
a >= b // 크거나 같음
a <= b // 작거나 같음
2.各比較演算子は、構文がtrueおよびfalseであるかどうかを識別するためにBool値を返します.また、これは流量制御に用いることができる.
if name == "hello world" {
	print(name)
}
//다음과 같이 위의 비교 연산자에서 true를 리턴한다면 클로저가 실행된다.
3.比較演算子は、タイプと同じ数の2つのパターンの値を比較することができる.ただし、ブール値は比較できないため、エラーが発生します.

三項条件演算子


1.3つの条件の接続者に問題がありますか?答1:答2は以下のロジックの特殊演算子を持つ.
let rowHeight = highHeight + (HasHeader ? 50 : 20)
//위와 같은 형태로 값을 프로퍼티의 참 거짓 여부에 따라 식별하여 대입이 가능하다.

nil結合演算子


1.これはa?bは、カーソルタイプaに値がある場合はaを解放する演算子であり、aがnilである場合はb値を返す.
print(a ?? b)
//이렇게 심플하게 나타낼 수 있다. 만약 a가 비어있다면 b가 출력될 것이다. 

範囲演算子


1.クローズ範囲演算子は、forループなどのすべての値の使用範囲を表すことができます.
for index in 1...5 {
	print(index)
}

//다음과 같이 닫혀진 범위를 지정할 때 사용한다.
2.半開範囲演算子は、最終値を含まない有限演算範囲を提供することができる.
for index in 1..<5 {
}

//다음과 같이 선언하게 되면 마지막 값 5는 최종적으로 루프에 해당되지 않는다.
3.一方向範囲は一方向に連続する範囲を表す.
for name in names[2...] {
}

//다음과 같이 하게되면, names배열의 인덱스 2번 값 이후의 모든 값을 조회할 수 있다.

for name in names[...6] {
}

//다음과 같이 물론 반대방향도 가능하다.

for name in names[..<6] {
}

//다음과 같이 단방향 범위 내 반열림 볌위 연산자를 통해서 범위 지정도 가능하다.
4.論理演算子論理のブール値をtrueとfalseに変更するか、結合します.論理演算子には、大きな値、Not、And、Orの3つの値があります.
!a // 논리적 Not 연산자이다. a가 true인 경우 false로, 반대 값을 만들어 준다.

a && b 
// 논리적 And 연산자이다. 두 개중 하나라도 false인 경우 false이다.
// 교집합 연산으로 모두 값이 모두 true여야 접근이 가능해진다.

a || b 
// 논리적 Or 연산자이다.
// 이는 합집합 연산으로 둘중 하나라도 true라면 true를 반환하여, 접근이 가능해진다.
5.論理演算子&&&|は左優先結合である.したがって、複数の論理演算子が重複している場合は、一番左から論理を計算します.
a || b && c && d
// 다음과 같은 경우 순서는 a에서부터 순차적으로 부울 값을 따져가며 연산이 진행된다.
6.カッコを指定しても、演算の順序は変わりません.ただし、明示的なカッコを使用すると、ユーザーがコードを解読するのに役立ちます.
a || (b && c) && d
// 다음과 같이 괄호를 명시하여도, 결과적으로 연산은 좌측 a에서부터 진행된다.

文章が少し長くなったので、すべての演算子を明確に区別する理由はありません。今日は述語から算術演算子、最後に論理演算子まで勉強しました。知っていることは多いかもしれませんが、正しい用語を身につけるには、概念を知ることが大切だと思いますので、大丈夫です。今日説明する演算子は、ユーザが変数の属性とフロー制御の方向を計画する点から正確に知らなければならない。😀