SWIFT-デフォルト演算子
用語
演算子には、単項、二項、三項の演算子があります.単項演算子( この演算子は、 三韓演算子は 割付演算子
代入演算子は、値を初期化または変更します.
定数、変数ともに使用できます.
SWIFTは4つの標準四則演算子をサポートし、すべての数値形式で使用できます.加算(+) マイナス(-) 乗数(*) 除算(/)
必要に応じて、オーバーフロー演算子を使用してサポートできます.
加算演算子は、文字列をマージするために使用できます.
数値は、
a=a+2は、付与演算(=)と加算演算(+)からなる演算合成であり、
合成代入演算子は値を返さない.つまり、
比較演算子
SWIFTは、標準Cが提供するすべての比較演算子をサポートします.(a=b) のように(a!=b) とは異なります大(a>b) 小(a(a>=b) 以上が(a<=b) 以下である
各比較演算は、真または偽の値を返します.
tupleの比較は左から右へ,一度に1つの値しか比較しない.
この比較は2つの異なる値を比較するまで実行される.
3つの条件演算子は、
3つの条件演算子はif-elseコードの略です.
Nil連結演算子
nil連結演算子は
オシェル
この
開いている
オープン
理解を助けるための例
閉じた範囲演算子
for inサイクルでよく使われます.
つまり、価格は
通常、配列には配列サイズ-1のインデックスがあるので、この半閉鎖範囲演算子は配列の処理に役立ちます.
指定した開始値または終了値は範囲内に含まれます.
SWIFTは3つの標準論理演算子をサポートします.論理否定NOT(!a) 論理AND(a&b) 論理和OR(a||b) 論理否定演算子
2つ以上の論理演算子を組み合わせて使用できます.
明示的なかっこ
論理演算子の適用優先度を演算子に渡すのではなく、カッコを使用して計算順序を明示的に指定できます.
演算子には、単項、二項、三項の演算子があります.
-a, !b, c!
など)は、オブジェクトの前後に密着して使用される演算子です.2 + 3
のような2つのオブジェクト間にある演算子です.a ? b : c
の形で存在し、SWIFTでは3つの演算子はこの1つの演算子しか存在しない.代入演算子は、値を初期化または変更します.
定数、変数ともに使用できます.
let b = 1
var a = 2
a = b
// a의 값은 10
図面を使用すると、複数の値を一度に割り当てることができます.let (x, y) = (3, 4)
// x는 3, y는 4의 값이 저장
四則演算子SWIFTは4つの標準四則演算子をサポートし、すべての数値形式で使用できます.
1 + 2 // 3
4 - 3 // 1
5 * 6 // 30
9.0 / 4.5 // 2.0
SWIFTは4則演算の値オーバーフローを許さない.必要に応じて、オーバーフロー演算子を使用してサポートできます.
加算演算子は、文字列をマージするために使用できます.
"hello, " + "world"
// equals "hello, world"
残りの演算子a % b
などの残りの演算をサポートします.9 % 4 // 1
-9 % 4 // -1
単項負数演算子数値は、
-
で表される単項負数演算子によって変更されます.let three = 3
let minusThree = -three // minusThree == -3
let plusThree = -minusThree // plusThree == 3
単項正数演算子+
で表される単項正数演算子は、シンボルに影響を及ぼさない.let minusSix = -6
let alsoMinusSix = +minusSix // alsoMinusSix == -6
アサイメント演算子の合成a=a+2は、付与演算(=)と加算演算(+)からなる演算合成であり、
+=
という形で省略して用いられる.var a = 1
a += 2
// a == 3
に注意合成代入演算子は値を返さない.つまり、
let b = a += 2
のような文法は使えません.比較演算子
SWIFTは、標準Cが提供するすべての比較演算子をサポートします.
各比較演算は、真または偽の値を返します.
1 == 1 // true
2 != 1 // true
2 > 1 // true
1 < 2 // true
1 >= 1 // true
2 <= 1 // false
比較演算はif-elseなどの条件構文でよく使用されます.let name = "seongbin"
if name == "seongbin" {
print("hi, seongbin")
} else {
print("who are you, \(name)?")
}
// Prints "hi, seongbin"
同じタイプの値を持つ2つのtupleを比較できます.tupleの比較は左から右へ,一度に1つの値しか比較しない.
この比較は2つの異なる値を比較するまで実行される.
( 1, "apple" ) < ( 2, "bird" ) // true
( 3, "cat" ) < ( 3, "dog" ) // true
( 4, "egg" ) == ( 4, "egg" ) // true
比較演算子がこの値を比較できる場合にのみ、比較できます.( "blue", -1 ) < ( "purple", 1) // true
( "a", false ) < ( "b", true ) //error, Boolean 값은 < 연산자로 비교할 수 없다.
三項条件演算子3つの条件演算子は、
question ? answer1 : answer2
の構造を有する.question
条件がtrueの場合、answer1
がfalseの場合、answer2
が実行される.3つの条件演算子はif-elseコードの略です.
if question {
answer1
} else {
answer2
}
3つの条件演算の実際の例let contentHeight = 40
let hasHeader = true
let rorwHeight = contentHeight + ( hasHeader ? 50 : 30 )
// rowHeight == 40 + 50 == 90
3つの条件演算子はコードを短縮し、毒性を高めた.Nil連結演算子
nil連結演算子は
a ?? b
形式の演算子である.オシェル
a
を除去し、a
がnil
であればb
を返還する.この
nil
連結演算子は、以下のコードの略である.a != nil ? a! : b
3つの条件演算子を使用し、開いている
a
がnil
でない場合、a
が開きます.オープン
a
がnil
でなくfalseである場合、b
が返却されることを意味する.理解を助けるための例
let defaultName = "seongbin"
var userDefindedName: String? // 이 값은 defaults 값이 nil
var nameToUse = userDefindedName ?? defaultName
// userDefindedName 값이 nil이므로,
// nameToUse 값은 defaultName인 "seongbin"
userDefindedName = "Lim"
nameToUse = userDefindedName ?? defaultName
// userDefindedName 값이 nil이 아니므로,
// nameToUse 값은 "Lim"
範囲演算子閉じた範囲演算子
(a..b)
の形式で範囲の開始および終了の演算子.for inサイクルでよく使われます.
for index in 1...5 {
print("\(index) times 5 is \(index * 5)")
}
// 1 times 5 is 5
// 2 times 5 is 10
// 3 times 5 is 15
// 4 times 5 is 20
// 5 times 5 is 25
セミクローズドレンジ演算子(a..<b)
の形態で、a
からb
未満の範囲である.つまり、価格は
a
からb-1
までです.通常、配列には配列サイズ-1のインデックスがあるので、この半閉鎖範囲演算子は配列の処理に役立ちます.
let names = [ "짱구", "철수", "훈이", "맹구", "이슬" ]
let count = names.count
for i in 0..<count {
print("Person \(i + 1) is called \(names[i])")
}
// Person 1 is called 짱구
// Person 2 is called 철수
// Person 3 is called 훈이
// Person 4 is called 맹구
// Person 5 is called 이슬
いちほうこうはんい[a..]
[..a]
の形式で、範囲の開始または終了に使用する範囲演算子のみを指定します.指定した開始値または終了値は範囲内に含まれます.
for name in names[2...] {
print(name)
}
// 훈이
// 맹구
// 이슬
for name in names[...2] {
print(name)
}
// 짱구
// 철수
// 훈이
単方向範囲演算子は、下付き文字だけでなく、次の特定の値が含まれているかどうかを判断するときにも使用できます.let range = ...5
range.contains(7) // false
range.contains(4) // true
range. contains(-1) // true
論理演算子SWIFTは3つの標準論理演算子をサポートします.
let allowedEntry = false
if !allowedEntry {
print("ACCESS DENIED")
}
// Prints "ACCESS DENIED"
論理乗算演算子let enteredDoorCode = true
let passedRetinaScan = false
if enteredDoorCode && passedRetinaScan {
print("Welcome!")
} else {
print("ACCESS DENIED")
}
// Prints "ACCESS DENIED"
論理演算子let hasDoorKey = false
let knowsOverridePassword = true
if hasDoorKey || knowsOverridePassword {
print("Welcome!")
} else {
print("ACCESS DENIED")
}
// Prints "Welcome!"
論理演算子の組合せ2つ以上の論理演算子を組み合わせて使用できます.
if enteredDoorCode && passedRetinaScan || hasDoorKey || knowsOverridePassword {
print("Welcome!")
} else {
print("ACCESS DENIED")
}
// Prints "Welcome!"
SWIFTの論理演算子&&
および||
は、左側の式を優先順位として論理計算を行う.明示的なかっこ
論理演算子の適用優先度を演算子に渡すのではなく、カッコを使用して計算順序を明示的に指定できます.
if (enteredDoorCode && passedRetinaScan) || hasDoorKey || knowsOverridePassword {
print("Welcome!")
} else {
print("ACCESS DENIED")
}
// Prints "Welcome!"
カッコを使用すると可読性が向上し、コードの意図を明確にするのに役立ちます.Reference
この問題について(SWIFT-デフォルト演算子), 我々は、より多くの情報をここで見つけました https://velog.io/@mae03087/Swift-기본-연산자テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol