[Go] Golang 기초 - 2

2022. 8. 2. 11:33·개발/Go
728x90
반응형

1.변수란?

변수란 값을 저장하는 메모리 공간을 가리키는 이름이다.

값을 저장하는 위치(저장소)는 크게 하드디스크와 메모리가 있다.

하드디스크는 느리지만 컴퓨터 전원이 꺼져도 그대로 남아있다.

메모리는 속도는 빠르지만 전원이 꺼지면 날라간다.

cpu연산에 필요한 데이터는 메모리에서 가져온다.

그 공간을 가리키는 이름이 변수이다.

 

2. 변수가 왜 중요한가?

프로그램이란 결국 데이터를 연산/조작 하는 일이다.

계산을 하려면 값이 있어야 하는데 그 값을 메모리에서 가져온다.

code에서 메모리의 값을 조작하는 일은 변수를 통해서 일어난다.

결국 데이터 조작을 변수를 통해서 한다는 것이다.

게임,음악, 비디오 등 컴퓨터 입장에서 보면 데이터를 조작하는 것이다.

결국 모든 프로그램은 데이터를 조작하는 것이고 이를 변수를 통해서 하기 때문에 중요하다.

 

3. 모듈 만들어서 실행해보기

 

package main

import "fmt"

func main(){
	var a int = 10
    var msg string = "Hello Variable"
    
    a = 20
    msg = "Good Morning"
    fmt.Println(msg, a)
}

var a int = 10 : 변수를 선언한다고 한다.

 

var : variable의 약자로 변수를 쓰겠다라고 하는것

a : 변수명

int : 타입

= : 대입연산자, 우변에 있는 값을 좌변의 변수에 넣는다 > 10이라는 값을 a에 넣는다.

다른말로 a가 가리키고 있는 메모리 공간에 10을 넣는다.

 

결론

int를 넣을수 있는 공간을 찾는다.

그 공간에 a를 넣고 거기에 10을 넣어준다.

 

var msg string = "Hello Variable"

 

string : 문자열이므로 우변에 문자열이 나와야 한다.

문자열은 ""로 묶어서 표현한다.

Hello Variable 을 copy해서 msg에 넣는다.

 

변수값 변경

a = 20

선언을 했기 때문에 다시 선언할 필요 없이 값만 넣어주면 된다.

20을 a에 넣는다. 여기서 넣는것은 덮어씌운다는 의미이다.

 

msg = "Good Morning" 도 마찬가지다

 

fmt.Printls(msg, a)

fmt라는 패키지가 가지고 있는 Println을 통해 msg,a 변수가 가리키고 있는 데이터를 출력한다.

 

결과 : Good Morning 20

728x90
반응형

'개발 > Go' 카테고리의 다른 글

[Go] 연산자  (0) 2022.08.10
[Go] Golang fmt 패키지  (0) 2022.08.03
[Go] Golang 기초 - 3  (1) 2022.08.02
[Go] Golang 기초 - 1  (0) 2022.07.26
[Go] Go 설치 및 기초  (0) 2022.07.25
'개발/Go' 카테고리의 다른 글
  • [Go] Golang fmt 패키지
  • [Go] Golang 기초 - 3
  • [Go] Golang 기초 - 1
  • [Go] Go 설치 및 기초
TeTedo.
TeTedo.
  • TeTedo.
    TeTedo 개발 일기
    TeTedo.
  • 전체
    오늘
    어제
    • 분류 전체보기 (319)
      • 개발 (274)
        • Article (4)
        • 정리 (21)
        • Spring Boot (17)
        • JPA (2)
        • JAVA (6)
        • Database (4)
        • 자료구조 (11)
        • 알고리즘 (32)
        • React (20)
        • Docker (10)
        • node.js (18)
        • Devops (11)
        • Linux (4)
        • TypeScript (3)
        • Go (10)
        • HyperLedger (4)
        • BlockChain (43)
        • html, css, js (48)
        • CS (3)
        • AWS (3)
      • 모아두고 나중에 쓰기 (3)
      • 팀프로젝트 (18)
        • SNS(키보드워리어) (9)
        • close_sea (9)
      • 개인프로젝트 (1)
        • Around Flavor (1)
        • CHAM (13)
        • ethFruitShop (5)
      • 독서 (0)
        • 스프링부트와 AWS로 혼자 구현하는 웹 서비스 (0)
  • 블로그 메뉴

    • 홈
    • 개발일기
    • CS
    • 실습
    • 코딩테스트
    • 웹
    • Go
    • node.js
    • 팀플
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    node.js
    ERC721
    컨테이너
    프로그래머스
    node
    mysql
    블록체인
    go
    go언어
    하이퍼레저
    30일 챌린지
    CSS
    html
    nodejs
    React
    도커
    30일챌린지
    명령어
    erc20
    js
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.1
TeTedo.
[Go] Golang 기초 - 2
상단으로

티스토리툴바