Swift의 기본 연산자

18790 단어 swift
오늘 Swift 언어의 가장 기본적인 지식을 배웠습니다. 다음은 저의 인식과 소결입니다. 더 많은 사람들의 이해를 돕고 부적절한 부분이 있으면 지적하여 제때에 정정하시기 바랍니다.
  
기본 연산자
연산자는 특수한 기호나 짧은 말로, 그것을 사용하여 검사하거나 바꾸거나 조합할 수 있다.
연산자는 모두 1원, 2원 또는 3원이다.
  • 일원 연산자 조작의 단일 대상은 주로 접두사 조작부호(예를 들어 -a,!a)와 접두사 조작부호가 대상 뒤에 나타난다(예를 들어 i++, i--).
  • 이원 연산자는 두 대상을 조작하고 두 대상 사이에 주로 -, +, *,/,%, <,>, = 등이 있다.(예를 들어 a-b, a+b, a*b, a/b, a%b, ab, a=b)
  • 삼원 연산자는 두 대상을 조작한다. C 언어와 마찬가지로 Swift도 삼원 연산자: 삼원 조건 조작자(a?b:c)만 지원한다.

  • 대입 연산자
    값 부여 연산자 (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의 비교 연산자를 지원합니다.
  • 가 (a>b)
  • 보다 크다
  • 작음(a
  • 는 (a>=b)보다 크다
  • 보다 작음(a<=b)
  • 는 (a=b)
  • 와 같다
  • 는 (a!=b)와 같지 않다
    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 언어에 기반한 세 개의 표준 논리 연산자를 지원합니다.
  • not (!a)
  • and (a&&b)
  • or  (a || b)

  • 논리적 비연산자(!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(" ")
    
    }
    
    // 

     
    논리적 표현식에 부합되는 몇 개의 값을 하나의 단독 논리적 연산에 놓고 결과를 판단한 다음에 () 내에서 판단한 결과에 따라 앞이나 뒤의 값과 판단하여 최종 결과를 얻어낼 수 있다
     
      

    좋은 웹페이지 즐겨찾기