3.2. 프로그램언어 고(Go)에서의 변수 타입

프로그램언어 고(Go)의 bool 타입 사용법

프로그램 언어 고(Go)에서 bool 타입은 부울 값을 나타내는 기본 자료형입니다. bool 타입은 true나 false 두 가지 값만 가질 수 있습니다.

예를 들어 다음과 같이 bool 변수를 선언하고 true나 false를 할당할 수 있습니다.

var b1 bool = true
var b2 bool = false

위에서 b1 변수에는 true 값이, b2 변수에는 false 값이 할당되어 있습니다.

또한 bool 타입은 조건문이나 반복문에서 주로 사용되는데, 아래 예시를 보면 if 조건문에서 bool 변수 b1의 값에 따라 다른 코드를 실행하는 것을 확인할 수 있습니다.

var b1 bool = true

if b1 {
    fmt.Println("b1 is true") 
} else {
    fmt.Println("b1 is false")
}

위 예시에서 if문의 조건부에 b1 bool 변수가 직접 사용됩니다. b1의 값이 true이기 때문에 “b1 is true”가 출력될 것입니다.

그리고 for 반복문의 조건부에서 bool 변수를 이용할 수도 있습니다.

var b2 bool = false

for !b2 {
   fmt.Println("b2 is false")
   b2 = true 
}

for문의 조건부에 !b2 와 같이 bool 변수앞에 ! 기호를 붙여 반대 부정 연산을 수행하고 있습니다. 즉, b2 값이 false일 때 계속해서 for문이 반복 실행될 것입니다.

이처럼 Go 언어의 bool 타입은 if, for등의 제어문에서 주로 활용되며 true/false 두가지 값을 표현하는데 사용합니다. 기본적인 부울 연산도 가능하며 내장 함수를 통해 bool과 다른 타입간 변환도 가능합니다.

위 설명이 Go언어의 bool 타입 사용법에 대한 이해에 도움이 되었기를 바랍니다.

프로그램언어 고(Go)의 string 타입 사용법

Go 언어의 문자열(string) 타입은 UTF-8로 인코딩된 텍스트 데이터를 저장합니다.


package main

import "fmt"

func main() {

    var str string = "Hello World" // 문자열 변수 선언

    fmt.Println(str) // Hello World 출력
}

위의 예제코드에서 Go 언어의 기본 문자열 타입인 string을 선언하고 “Hello World”라는 문자열 리터럴을 할당했습니다. 이 문자열 변수 str을 fmt.Println 함수로 출력하면 “Hello World”가 정상적으로 출력되는 것을 확인할 수 있습니다.

字符串 리터럴은 큰따옴표(” “)나 백틱( ` )으로 둘러싸인 문자들의 집합입니다. Go 문자열은 불변성(immutable)을 가지므로 한번 생성된 문자열을 변경할 수 없습니다.


package main

import "fmt"

func main() {

    str := "Hello World"

    str[0] = 'A' // 에러 발생! 문자열은 변경 불가능.
}  

위의 예제코드처럼 생성된 Go 문자열을 변경하려고 하면 에러가 납니다. 대신 문자열 연결을 통해 새로운 문자열을 만들거나 바이트 슬라이스를 문자열에 변환하는 방법으로 문자열을 조작할 수 있습니다.

기본 문자열 외에 Go는 raw 문자열 리터럴(backquote로 둘러싸인 문자열)을 지원합니다. 이는 해석되지 않은 생 문자열로서 뉴라인이나 특수문자 등을 그대로 사용할 수 있습니다.


s := `This string literal has one line feed ( LF ). 
         Hello \n World ` 
 
fmt.Println(s) 

위 예제의 raw 문자열에는 실제로 줄바꿈 문자나 역슬래시 문자가 문자열에 그대로 포함되어 출력됩니다.

이 외에도 Go 문자열은 + 연산자를 사용한 문자열 연결, 바이트 슬라이스와의 변환 등 다양한 문자열 조작 기능을 제공합니다. 자세한 사용법은 Go 문자열 패키지 문서를 참고하시기 바랍니다.

지금까지 Go 언어의 문자열 타입인 string에 대해 간략하게 설명해드리고 예제코드를 통해 사용법을 알려드렸습니다. 문자열 조작과 관련된 보다 자세한 내용은 공식문서를 참고해주시기 바랍니다.

프로그램언어 고(Go)의 int 타입 사용법

고(Go) 프로그램언어의 int 타입 사용법에 대해 설명드리겠습니다.

int 타입은 정수형 자료형으로, 주로 숫자 데이터를 저장하고 처리할 때 사용합니다.


package main

import "fmt"

func main() {
  
  // int 변수 선언
  var num1 int = 10
  
  // int 상수 선언
  const num2 int = 20 
  
  fmt.Println(num1)
  fmt.Println(num2)
}

위의 예제코드에서 보면 int 타입의 변수 num1과 상수 num2를 선언하고 있습니다.

num1은 int 타입의 변수로 10이라는 숫자값을 저장합니다.
num2는 int 타입의 상수로 20이라는 값을 가집니다.

이 변수와 상수를 fmt.Println() 함수를 사용해 출력하고 있죠.

int 타입의 변수와 상수를 선언할 때는 var 키워드나 const 키워드를 사용하며, 타입명 뒤에 변수명 또는 상수명을 적어주시면 됩니다.

값을 할당할 때는 = 기호를 사용하여 리터럴 값이나 다른 변수, 상수, 식의 결과값 등을 대입할 수 있습니다.

기본적으로 int 타입의 변수나 상수를 출력하면 10진수 정수값이 출력됩니다.

int의 기본 크기는 플랫폼 별로 다르지만, 일반적으로 32비트 또는 64비트 정수를 표현할 수 있습니다.

정수형에서 사용할 수 있는 연산자는 +, -, *, / 처럼 사칙연산은 물론 % 나머지 연산, & 비트 AND, | 비트 OR, ^ 비트 XOR, << 비트 시프트, >> 비트 시프트 같은 비트 연산도 사용 가능합니다.

if, for 문과 같은 제어문을 사용하여 int 변수와 상수의 값을 제어할 수도 있죠.

이 외에도 다양한 기능을 제공하니 자세한 사용법은 고(Go) 문서를 참고해주시기 바랍니다.

프로그램언어 고(Go)의 float 타입 사용법

고(Go) 프로그램 언어에서 float 타입은 부동소수점 숫자를 저장하기 위해 사용하는 데이터 타입입니다.

var f1 float32 = 3.14
var f2 float64 = 3.14159265358979

위의 예제코드에서 보듯이 float 타입에는 float32와 float64 두 가지가 있습니다.

– float32는 소수점 이하 7자리까지의 정밀도를 가집니다.
– float64는 소수점 이하 15자리까지의 정밀도를 가집니다.

값의 범위도 float64가 더 넓습니다.

float 타입 변수를 선언할 때는 var 키워드를 사용하고 타입을 float32 또는 float64로 지정해줍니다.

var 별칭 float32 = 값
var 별칭 float64 = 값

위의 표현식을 사용하여 float 변수를 초기화할 수 있습니다.

float에 저장할 수 있는 값의 범위는 다음과 같습니다.

– float32: ±3.4e38 정도
– float64: ±1.7e308 정도

실수 연산 시 부동소수점의 오류가 발생할 수 있다는 점을 고려하여 사용해야 합니다.

결론적으로 고(Go)언어의 float32와 float64는 소수점 값을 저장하고 연산하기 위한 실수 타입입니다. 정밀도와 값의 범위가 다르 so 사용 목적에 따라 적절히 선택하시기 바랍니다.

프로그램언어 고(Go)의 rune 타입 사용법

Go 언어의 rune 타입은 유니코드(Unicode) 글자를 나타내는 데 사용되는 타입입니다. rune은 int32와 동일한 타입으로, 유니코드 포인트를 저장할 수 있습니다.

rune을 사용하는 이유는 다음과 같습니다.

package main

import "fmt"

func main() {
    var ch rune = '가'
    fmt.Printf("%T\n", ch)
}

위와 같이 rune 타입 변수 ch를 선언하고 한글 글자 ‘가’를 대입했습니다.
fmt.Printf를 이용해서 %T로 ch의 타입을 출력하면 int32가 나옵니다.

Go 언어에서 문자열은 바이트(byte) 수준에서 다뤄지기 때문에, 한글과 같은 복잡한 유니코드 문자를 제대로 처리하기 위해서는 rune 타입이 필요합니다.

예를 들어 다음과 같이 문자열을 한 글자씩 잘라서 출력한다고 할 때,

package main

import "fmt"

func main() {
    str := "가나다라마"
    
    for _, v := range str {
        fmt.Printf("%c ", v)
    }
}

위 코드는 올바르게 동작하지 않고 문자가 깨지게 됩니다.

이는 Go의 문자열은 바이트 수준이기 때문입니다. 따라서 이를 해결하기 위해서는 rune 타입을 사용하여 유니코드 글자 하나하나를 정확하게 처리할 수 있습니다.

package main

import "fmt"

func main() {
    str := "가나다라마"
    
    for _, r := range []rune(str) {
        fmt.Printf("%c ",r)
    }
}  

[]rune(str)으로 문자열을 rune 슬라이스로 변환하여 한 글자씩 유니코드 문자를 접근할 수 있습니다.

이처럼 Go 언어에서 복잡한 문자 집합을 다루거나, 문자열의 실제 글자 단위로 접근하고 싶을 때 rune 타입을 사용합니다.

rune과 byte의 차이점을 이해하고 유의어 사용하는 것이 Go 언어 문자열 다루기의 핵심입니다.

Leave a Comment