Swift의 기본 연산자
18790 단어 swift
기본 연산자
연산자는 특수한 기호나 짧은 말로, 그것을 사용하여 검사하거나 바꾸거나 조합할 수 있다.
연산자는 모두 1원, 2원 또는 3원이다.
대입 연산자
값 부여 연산자 (a=b) 는 b의 값으로 a의 값을 초기화하거나 업데이트합니다
let b =2
var a = 3
a= b
// a b 2
만일 오른쪽에 부여된 데이터가 여러 데이터의 원조라면, 그 원소는 한꺼번에 부여된 여러 상수나 변수일 수 있다
let (a, b) = (1, 2)
// a 1, b 2
C와 Objective-C와 달리 Swift의 대입 연산자는 자신을 하나의 값으로 되돌려주지 않습니다.그래서 아래의 코드는 비합법적이다.
if x = y {
// , x = y
}
수학 연산자
Swift는 모든 숫자 유형에 대해 네 개의 치수 연산자를 지원합니다.
1 + 2 // equals 3
5 - 3 // equals 2
2 * 3 // equals 6
10.0 / 2.5 // equals 4.0
C와 Objective-C와는 달리 기본적으로 Swift의 산술 연산자는 값을 넘길 수 없습니다.덧셈 연산자는 문자열 연결에도 똑같이 적용됩니다. 예를 들어,
"hello, " + "world" // equals "hello, world"
두 문자 또는 한 문자 한 문자열을 새 문자열로 조합할 수 있습니다.
let dog: Character = "dog"
let cow: Character = "cow"
let dogCow = dog + cow
// dogCow is equal to "dogcow"
취여 연산자
나머지 연산자%는 나눗셈을 나눗셈으로 나눌 때 남은 수를 가리킨다. 예를 들어(3%2의 나눗셈은 1)
let a = 5
let b = 3
let c = a%b
// c 2
같은 방법에서 만약에 a의 값이 -5라면 나머지 연산 후 c의 값은 -2이고 b의 값이 -3이면 c의 값은 2이다. 즉, 나머지 연산의 기호는 피제수 b의 영향을 받지 않고 단지 제수 a의 영향을 받는다.
부동 소수점 잔수 계산
C와 OC와 달리 Swift의 잉여 연산은 부동점수에도 적용될 수 있다.
let a = 8
let b = 2.5
let c = a%b
// c 0.5
자증자감 연산자
C와 마찬가지로 Swift는 자증(++), 자감(-) 두 개의 연산자를 제공하는데 그 증감량은 1로 모든 정점이나 부동 유형의 변수에 사용할 수 있다.예컨대
var a = 0
++a // a 1
--a // a 0
여기서 주의해야 할 것은 연산이 값을 되돌려야 할 때 자증자감 연산자가 놓는 위치에 따라 연산의 결과도 다르다는 것이다.
var a = 0
let b = ++a //a b 1
let c = a++ // a 2 c 1
let d = --a // d 1 a 1
let e = a-- // e 1 a 0
복합 할당 조작부호
Swift는 C 언어와 같은 복합 복제 조작부호를 제공했다. 즉, 값을 다른 연산자와 결합시키는 것이다.예를 들어 (+=),(-=):
var a = 1
a += 2 // a 3
a -= 3 // a 0
덧셈 값 조작부호의 원형은 a=a+2이다. (+=)로 쓴 이유는 이렇게 쓰면 덧셈과 값을 하나의 연산에 효과적으로 조합하여 이 두 임무를 동시에 수행할 수 있기 때문이다.
주의해야 할 것은 복합 복제 조작부호는 값을 되돌려주지 않는다는 것이다.예를 들어 이렇게 쓰면 틀린 let a = +=1이다.
비교 연산자
Swift는 모든 C의 비교 연산자를 지원합니다.
let a = 5
let b = 6
let c = 5
a>b // false
c<b // true
a>=c // true
a<=c // true
a == c // true
a != b // true
이런 비교 연산자는 통상적으로if문장과 같은 조건문장에 쓰인다
let a = "chk"
if a == "chk"{
println("hello, chk")
}
else{
println("not chk")
}
// hello, chk
if문장에 대해 우리는 이후에 다시 상세하게 연구할 것이다
Swift는 두 가지 형식의 범위 연산자를 제공합니다.
1. 닫힌 범위 연산자
폐쇄 범위 연산자 (a... b) 는 a에서 b까지의 범위를 정의하고 a와 b의 값을 포함한다.일반적으로 for-in 순환 문장에 사용
for i in 0...5{
println(" \(i) ")
}
// 0
// 1
// 2
// 3
// 4
for-in 문장에 대해 우리는 이후에 다시 깊이 연구할 것이다.
2. 반닫힌 영역 연산자
반폐쇄된 영역 연산자(a.b)는 a에서 b까지의 범위를 정의하지만 b는 포함하지 않습니다.그것은 첫 번째 값을 포함하고 최종 값을 포함하지 않기 때문에 반폐쇄적인 것으로 여겨진다.
반폐쇄된 범위는 0에서 시작하는 목록을 사용할 때, 예를 들어 그룹을 사용하면, 목록의 길이가 유용하다.
let names = ["Anna", "Alex", "Brian", "Jack"]
let count = names.count
for i in 0..count {
println("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
이 수조는 네 개의 항목을 포함하지만, 0.반 폐쇄된 범위이기 때문에 세 개만 세어라.수조에 관한 정보는 우리 이후에 깊이 연구하자.
삼원 연산자
Swift는 C 언어와 마찬가지로 삼원 연산도 지원하고 삼원 연산도 조 연산에 속한다. 주요 형식은 a?b:c의 표현은 a의 값을 판단하는 것을 의미하며, a의 값이true로 되돌아오면 표현식은 b의 값을 되돌려주고, a의 값이false로 되돌아오면 c의 값을 되돌려준다.다음은 다음 3원 연산자의 장점을 코드로 비교합니다.
let a = true
let b = a?2:3
// b 2
위의 표현식도 이렇게 쓸 수 있다
let a = true
if a {
reture 2
}
else{
reture 3
}
// 2
삼원 연산자를 사용하는 것이 더욱 간결하고 편리하다는 것이 분명하다.그러나 주의해야 할 것은 코드의 가독성을 확보하기 위해서 여러 개의 실례적인 삼원 조건 연산자를 사용하여 하나의 복합문장으로 조합하지 않는 것이 가장 좋다는 것이다.
논리 및 연산자
Swift는 일반적으로 조건문에 사용되는 C 언어에 기반한 세 개의 표준 논리 연산자를 지원합니다.
논리적 비연산자(!a)는 성립이 아니라면true를 되돌려주고, 성립되지 않으면false를 되돌려준다는 뜻이다
let a = true
if !a {
println(" ")
}
else{
println(" ")
}
//
// a , a , false
논리와 연산자(A&&B)가 표현하는 뜻은 A이다. B 두 값은 반드시true가true로 되돌아와야 한다. 그렇지 않으면 A,B 중 하나가false면false로 되돌아간다.
let A = true
let B = false
if A && B {
println(" true")
}
else{
println(" false")
}
// false
논리 또는 연산자(A|||B)는 A와 B 중 하나가true이면 true로 되돌아오고, A, B가false이면 결과가false로 되돌아온다는 것을 나타낸다
let A = true
let B = false
if A || B {
println(" true")
}
else{
println(" false")
}
// true
여기서 주의해야 할 것은 논리와 연산자든 논리든 연산자든 모두 단거리 조건 판단법을 사용했다. 예를 들어 논리와 연산자(&)는 두 개의 값이true일 때만 성립된다. 그러면 왼쪽의 값이false일 때 조건이 성립되지 않으면 연산자 오른쪽의 값을 더 이상 판단할 필요가 없다.논리나 연산자(||)도 마찬가지다. 논리나 연산자(||)는 하나의 값이true이면 성립된다. 그러면 왼쪽의 값이true라고 판단할 때 조건이 성립되면 연산자 오른쪽의 값을 더 이상 판단할 필요가 없다.
복합 논리 표현식
일치 논리 표현식은 여러 논리 연산자를 복합한 후 더 긴 복합 표현식을 생성하는 것입니다.
let a = true
let b = false
let c = true
if !a || c && b {
println(" ")
}
else {
println(" ")
}
//
이와 같은 복합 논리 표현식의 판독은 일반적으로 왼쪽에서 오른쪽으로 논리 연산자의 우선순위에 따라 순서대로 판단한다. (!, &, |) 이 세 연산자의 우선순위는 똑같다. 논리와 연산자(&) 둘 다true가 성립되어야 한다는 것을 명심하고 논리 또는 연산자(||) 둘 중 하나가true이면 성립된다. 이렇게 하면 전체 복합 표현식을 정확하게 해석할 수 있다.반드시 현상을 통해 본질을 보아야 한다.
명확한 괄호
이것은 비교적 이해하기 쉽다. 복합 논리 표현식에 우리는 ()를 추가하여 논리적 의도를 더욱 명확하게 할 수 있다. 예를 들어 상단 코드에 우리가 ()를 추가할 수 있다.
let a = true
let b = false
let c = true
if !a || ( c && b ) {
println(" ")
}
else {
println(" ")
}
//
논리적 표현식에 부합되는 몇 개의 값을 하나의 단독 논리적 연산에 놓고 결과를 판단한 다음에 () 내에서 판단한 결과에 따라 앞이나 뒤의 값과 판단하여 최종 결과를 얻어낼 수 있다
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
백그라운드에서 값을 계산하고 Swift 동시성 이후에 결과 사용값을 계산해야 하고 메인 스레드를 차단하지 않으려면 계산된 값을 반환하는 Swift Task 구조에서 해당 값을 계산하면 됩니다. Swift 동시성 이전에는 백그라운드 대기열로 이동하여 필요한 값을 계산하고 필요한 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.