Go - 연산자: 프로그래밍 마법의 친절한 안내서

안녕하세요, 미래의 코딩 마법사 여러분! 오늘 우리는 Go 연산자의 매력적인 세상으로 뛰어들어 볼 거예요. 초めて 코드를 작성해 본 적이 없어도 걱정 마세요 - 이 마법의 여정에서 당신의 신뢰할 수 있는 안내자가 되겠습니다. 이 튜토리얼의 끝을 맺을 때쯤이면, 연산자를 마스터级别으로 다룰 수 있을 거예요!

Go - Operators

연산자는 무엇인가요?

먼저, 연산자가 정말 무엇인지 이야기해 보겠습니다. 연산자는 프로그래밍의 마법 지팡이라고 생각해 보세요. 그들은 우리의 데이터에 작업을 수행하고, 값을 비교하며, 코드에서 결정을 내리는 데 사용됩니다. 요리사가 맛있는 요리를 만들기 위해 다양한 도구를 사용하는 것처럼, 우리는 다양한 연산자를 사용하여 놀라운 프로그램을 만듭니다!

산술 연산자: 수학의 마법사

먼저 익숙한 것으로 시작해 보겠습니다 - 수학! Go의 산술 연산자는 학교에서 배운 기본 수학 연산과 같은 방식으로 작동합니다. 다음은 이 마법의 수학적 보물들입니다:

연산자 설명 예시
+ 덧셈 5 + 3 = 8
- 뺄셈 10 - 4 = 6
* 곱셈 3 * 4 = 12
/ 나눗셈 15 / 3 = 5
% 나머지 (모듈러) 17 % 5 = 2

이제 이들을 실제로 사용해 보겠습니다:

package main

import "fmt"

func main() {
a := 10
b := 3

fmt.Println("덧셈:", a + b)
fmt.Println("뺄셈:", a - b)
fmt.Println("곱셈:", a * b)
fmt.Println("나눗셈:", a / b)
fmt.Println("나머지:", a % b)
}

이 프로그램을 실행하면 다음과 같은 결과를 볼 수 있습니다:

덧셈: 13
뺄셈: 7
곱셈: 30
나눗셈: 3
나머지: 1

이게 멋있습니다! 우리는 단 몇 줄의 코드로 모든 기본 수학 연산을 수행했습니다!

관계 연산자: 비교의 기사

다음으로, 관계 연산자가 있습니다. 이들은 탤런트 쇼의 심사위원처럼 두 가지 값을 비교하고, 비교가 참인지 거짓인지 결정합니다. 이제 비교의 기사들이 등장합니다:

연산자 설명 예시
== 같다 5 == 5는 참
!= 다르다 5 != 3는 참
> 크다 7 > 3는 참
< 작다 2 < 8는 참
>= 크거나 같다 5 >= 5는 참
<= 작거나 같다 4 <= 4는 참

이제 이들을 실제로 사용해 보겠습니다:

package main

import "fmt"

func main() {
x := 5
y := 10

fmt.Println("x는 y와 같은가?", x == y)
fmt.Println("x는 y와 다른가?", x != y)
fmt.Println("x는 y보다 큰가?", x > y)
fmt.Println("x는 y보다 작은가?", x < y)
fmt.Println("x는 y보다 크거나 같은가?", x >= y)
fmt.Println("x는 y보다 작거나 같은가?", x <= y)
}

이를 실행하면 다음과 같은 결과를 얻습니다:

x는 y와 같은가? 거짓
x는 y와 다른가? 참
x는 y보다 큰가? 거짓
x는 y보다 작은가? 참
x는 y보다 크거나 같은가? 거짓
x는 y보다 작거나 같은가? 참

각 비교는 참이나 거짓 결과를 주는 것을 보았습니다. 이것이 관계 연산자의 힘입니다!

논리 연산자: 결정의 고인

논리 연산자는 우리 프로그래밍 마을의 지혜로운 노인들처럼, 여러 조건을 결합하여 복잡한 결정을帮助我们하습니다. 이제 논리의 빛나는 존재들이 등장합니다:

연산자 설명 예시
&& AND true && false = false
|| OR true || false = true
! NOT !true = false

이제 이들을 실제로 사용해 보겠습니다:

package main

import "fmt"

func main() {
isSunny := true
isWarm := false

fmt.Println("날씨가 맑고 따뜻한가?", isSunny && isWarm)
fmt.Println("날씨가 맑거나 따뜻한가?", isSunny || isWarm)
fmt.Println("날씨가 아닌가?", !isSunny)
}

이를 실행하면 다음과 같은 결과를 얻습니다:

날씨가 맑고 따뜻한가? 거짓
날씨가 맑거나 따뜻한가? 참
날씨가 아닌가? 거짓

이 연산자들은 우리의 프로그램에서 결정을 내리는 데 매우 강력하게 사용됩니다. 그들은 프로그램의 뇌와 같습니다!

비트 연산자: 이진의 친구들

이제 이진 마법의 세계로 들어가 볼게요. 비트 연산자는 숫자의 이진 표현을 직접 작동합니다. 이들은 좀 더 고급 개념이지만, 알고 있으면 매우 유용할 수 있습니다! 이제 이진의 친구들이 등장합니다:

연산자 설명
& 비트 AND
| 비트 OR
^ 비트 XOR
<< 왼쪽 이동
>> 오른쪽 이동

이제 간단한 예시를 보겠습니다:

package main

import "fmt"

func main() {
a := 5  // 이진: 101
b := 3  // 이진: 011

fmt.Printf("a & b = %d\n", a & b)
fmt.Printf("a | b = %d\n", a | b)
fmt.Printf("a ^ b = %d\n", a ^ b)
fmt.Printf("a << 1 = %d\n", a << 1)
fmt.Printf("b >> 1 = %d\n", b >> 1)
}

이를 실행하면 다음과 같은 결과를 얻습니다:

a & b = 1
a | b = 7
a ^ b = 6
a << 1 = 10
b >> 1 = 1

처음에는 약간 혼란스러울 수 있지만, 비트 연산은 새로운 언어를 배우는 것처럼 시간과 연습이 필요합니다!

대입 연산자: 값 설정자

대입 연산자는 우리 코드의 유용한 비서들입니다. 그들은 우리가 값을 빠르게 할당하고 업데이트하는 데 도와줍니다. 이제 값 설정자들이 등장합니다:

연산자 설명 예시
= 간단한 할당 x = 5
+= 더하고 할당 x += 3은 x = x + 3과 같다
-= 뺄고 할당 x -= 2는 x = x - 2와 같다
*= 곱하고 할당 x = 4는 x = x 4와 같다
/= 나누고 할당 x /= 2는 x = x / 2와 같다
%= 나머지하고 할당 x %= 3은 x = x % 3와 같다

이제 이들을 실제로 사용해 보겠습니다:

package main

import "fmt"

func main() {
x := 10

fmt.Println("초기 x:", x)

x += 5
fmt.Println("x += 5 후:", x)

x -= 3
fmt.Println("x -= 3 후:", x)

x *= 2
fmt.Println("x *= 2 후:", x)

x /= 4
fmt.Println("x /= 4 후:", x)

x %= 3
fmt.Println("x %= 3 후:", x)
}

이를 실행하면 다음과 같은 결과를 얻습니다:

초기 x: 10
x += 5 후: 15
x -= 3 후: 12
x *= 2 후: 24
x /= 4 후: 6
x %= 3 후: 0

이 연산자들은 코드를 깨끗하고 효율적으로 만드는 데 매우 유용합니다!

기타 연산자: 독특한 유니콘들

Go는 다른 범주에 맞지 않는 특별한 연산자들도 가지고 있습니다. 이 독특한 유니콘들은 다음과 같습니다:

연산자 설명
& 주소의
* 포인터의
<- 수신 연산자

이들은 더 고급 개념이며, 미래의 강의에서 더 깊이 탐구할 것입니다. 지금은 그들이 존재하고, 당신이 그들의 마법을 발견할 것을 기대하겠습니다!

연산자 우선순위: 힘의 계급

마치 수학에서처럼, Go에서도 연산이 특정 순서로 수행됩니다. 이를 연산자 우선순위라고 합니다. 다음은 Go의 연산자 우선순위의 간단한 버전입니다:

  1. 괄호 ()
  2. 일元 연산자 (!, -, +, &, *, <-)
  3. 곱셈, 나눗셈, 모듈러 (*, /, %)
  4. 덧셈과 뺄셈 (+, -)
  5. 비교 연산자 (==, !=, <, <=, >, >=)
  6. 논리 AND (&&)
  7. 논리 OR (||)
  8. 대입 연산자 (=, +=, -=, *=, /=, %=)

疑問이 있을 때는 괄호를 사용하여 의도를 명확히 하세요!

그렇게 하면, 우리는 Go 연산자의 세계를 여행했고, 산술 연산자에서 비트 연산자에 이르기까지 다양한 연산자를 배웠습니다. 이제 연산자를 마스터하는 데 걸리는 시간과 연습을 기대해 보세요. 계속 코딩하고, 실험하고, 곧 Go 마법사가 될 것입니다!

Credits: Image by storyset