한 눈에 끝내는 고랭 기초
    • 01
      시작하기에 앞서
    • 강의대상
      Go란?
      실습 환경 구축 - 구름IDE
      Hello goorm! 출력해보기
    • 02
      변수와 상수
    • 콘솔 출력 함수의 기본
      변수의 선언과 초기화
      상수의 선언과 초기화
      간단한 덧셈
      잘못된 신상정보
    • 03
      연산자
    • 연산자 종류
      연산자 우선순위
      콘솔 입력 함수의 기본
      간단한 덧셈과 곱셈
      몫과 나머지
    • 04
      자료형
    • 자료형의 종류와 특징
      문자열의 표현
      자료형의 변환
      강제 형 변환
    • 05
      콘솔 출력과 입력 함수
    • 콘솔 출력 함수(Print)
      콘솔 입력 함수(Scan)
      정돈된 표
      신상정보 입력과 출력
    • 06
      반복문 - for
    • 오로지 for
      구구단
      빛나는 이등변삼각형
    • 07
      조건문 - if/else
    • 조건에 따른 실행과 흐름 분기
      7과 9의 배수
      두 수의 차
    • 08
      분기문 - switch
    • swich문에 의한 선택적 실행
      안좋은 계산기
    • 09
      제어문
    • break, continue, goto문
      구구단2
      두 수를 더하면 99
    • 10
      컬렉션
    • 배열(Array)
      슬라이스(Slice)
      맵(Map)
      역행렬
      가장 긴 이름
      중간고사 평균 점수
    • 11
      함수
    • Go언어에서의 함수
      전역변수와 지역변수
      매개변수
      반환값(리턴값)
      익명 함수
      오름차순 정렬
      아이패드를 사주는 조건
      역학적 에너지
    • 12
      클로저
    • 외부 변수 접근 : 클로저
      동전 정리
    • 13
      구조체와 메소드
    • 구조체
      메소드
      성적 저장 프로그램
      역학적 에너지2
    • 14
      인터페이스(interface)
    • 메소드의 집합 인터페이스
      직육면체와 원기둥
    • 15
      defer와 panic()
    • 지연 처리 defer
      종료하는 panic(), 복구하는 recover()
      엘리베이터
      중간고사 평균 점수2
    • 16
      에러 처리
    • 에러 처리의 기본
      에러 출력 및 처리
      중간고사 평균 점수3
    • 17
      고루틴(Goroutine)
    • 비동기 프로세스의 기본
      고루틴의 활용
      고루틴 실습
    • 18
      채널(Channel)
    • 고루틴의 데이터 통로 : 채널
      비동기 채널과 버퍼
      동기 채널
      채널 닫기
      송신 전용, 수신 전용 채널
      채널 select문
      고루틴 실습2
      메시지 전송
      동기 채널 실습
      비동기 채널 실습
    • 19
      패키지(package)
    • 패키지의 개념
    • 20
      실전 프로젝트 - 마일리지 상점
    • 프로젝트를 시작하기 앞서
      실습모드에서 실습
      마일리지 상점의 주요 기능
      필수 구조체와 매인 메뉴
      잔여 수량, 잔여 포인트 구현
    • 21
      실전 프로젝트 - 주문하기, 장바구니 담기
    • 구매 구현(1)
      구매 구현(2)
      장바구니에 담기
      장바구니 확인(1)
      장바구니 확인(2)
    • 22
      실전 프로젝트 - 고루틴으로 배송하기
    • 배송 상태 확인(1)
      배송 상태 확인(2)
      배송 상태 확인(3)
      최종 코드
    자료형의 변환
    04 자료형
    자료형의 변환

    int형으로 표현되어 있는 데이터 표현방식을 float32형으로 바꾸거나, int형으로 표현되어있는 데이터의 표현방식을 uint형으로 바꾸는 것이 바로 '자료형의 변환'입니다. 즉, 자료형의 변환이라는 것은 데이터의 표현방식을 바꾸는 것입니다. 이러한 자료형의 변환은 다른 언어들을 비추어 보았을 때 크게 두 종류가 있습니다.

    • 자동 형 변환(묵시적 형 변환)
    • 강제 형 변환(명시적 형 변환)

    이름에서 볼 수 있듯이 '자동 형 변환'은 자동으로 발생하는 형 변환이고, '강제 형 변환'은 프로그래머가 형 변환을 명시해서 강제로 변환이 일어나게 하는 것입니다. 그런데 Go언어에서는 형 변환을 할 때 변환을 명시적으로 지정해주어야합니다. 예를 들어 float32에서 uint로 변환할 때, 암묵적 변환은 일어나지 않으므로 "uint(변수이름)"과 같이 반드시 변환을 지정해줘야합니다. 만약 명시적인 지정이 없다면 런타임 에러가 발생합니다.


    아래 코드를 바로 실행해보세요. 명시적 형 변환을 함으로써 에러 없이 잘 실행 됨을 확인할 수 있습니다.

    go
    실행 결과를 확인해보세요!
    마지막으로 주의할 점을 보여주겠습니다. 아래 코드를 보세요.
    go
    실행 결과를 확인해보세요!

    결괏값이 어떻게 출력될 것 같습니까? 0.75라고 생각했다면 틀렸습니다. 위 코드는 런타임 에러를 발생시킵니다. 왜냐하면 연산식의 결괏값과 그것을 저장하려는 변수의 자료형이 다르기 때문입니다. 위에서 언급했던 것처럼 Go언어는 자동으로 형 변환이 되지 않습니다. 따라서 에러가 발생합니다. 연산의 결괏값의 자료형과 피연산자의 자료형이 일치해야한다는 것을 주의해야합니다.

    따라서 위 코드에서는 num1과 num2을 float32 형으로 형 변환을 해야합니다.

    질문하기