func Add( a int, b int) int {
	return a + b
}

4장 - 변수

  • 수학 : 변하는 수
  • 컴퓨터 : 값을 저장하는 메모리 공간을 가리키는 이름

컴퓨터에서 값을 저장하는 위치는 하드디스크(비휘발성)와 메모리(휘발성)이다.
프로그램이란 데이터를 연산/조작 하는 일로써, 이에 필요한 것이 변수이다.
CPU가 변수를 이용하여 계산을 하고 이 작업을 메모리가 진행하여 프로그램이 실행된다.

var 변수명 변수타입 = 실제 값

변수의 4가지 속성

이름, 값, 주소, 타입

설명타입기본값
unsigned(부호 X) 정수타입uint8(8bytes), uint16(16bytes), uint32(32bytes), uint64(64bytes)0
정수타입int8(8bytes), int16(16bytes), int 32(32bytes), int64(64bytes)0
실수타입float32(32bytes), float64(64bytes)0.0
기타 숫자타입byte(부호 X, 별칭타입), rune(문자 1개, UTF-8 = 1~3bytes = int32 ==4bytes, 별칭타입), int(사이즈가 플랫폼에 따라 달라진다. 32/64bit), uint(사이즈가 플랫폼에 따라 달라진다. 32/64bit) 
참 거짓bool(true/false)false
문자열string"" (빈문자열)
그외 타입배열, 슬라이스, 구조체, 포인터, 함수타입, 맵, 인터페이스, 채널nil(정의되지 않은 메모리 주소를 나타내는 Go 키워드)
별칭타입rune, byte 등 특정 타입에 대해 별칭이 주어진 것, 사용자에 따라 별칭타입을 선언하여 사용할 수 있다. 

타입변환

  • Go 언어는 강타입 언어
  • 타입이 상이하지만 연산이 필요한 경우, 타입을 변환하여 연산을 진행
  • 같은 정수이더라도 타입이 다르면 오류 발생 

5장 - 텍스트 입출력

go 언어에서는 fmt 패키지에서 표준 출력함수를지원한다.

print()함수 입력값들을 출력합니다.
println()함수 입력값들을 출력하고 개행합니다.(new line)
printf()서식(format)에 맞게 함수 입력값들을 출력합니다.

표준 입력 함수
go 언어에서는 fmt 패키지에서 표준 입력함수를지원한다.

Scan()표준 입력에서 값을 입력받습니다.
Scanf()표준 입력에서 서식 형태로 값을 입력받습니다.
Scanln()표준 입력에서 한 줄을 읽어서 값을 입력받습니다.

입력 버퍼(Input Buffer)

표준입력/표준출력은 Bit Stream의 형식으로 출력되며 0,1로 진행이 된다.
Bit stream 형식으로 입력되는 값이 저장 되는 공간을 버퍼라고 한다.
 

6장 - 연산자

산술연산자

산술 연산자arithmetic operator란 덧셈, 뺄셈, 곱셈, 나눗셈 등을 하는 연산자이다. 산술 연산자는 C를 포함한 대부분의 프로그래밍 언어에서 가장 많이 사용되는 기능 중 하나이다. 

구분연산자연산피연산자타입
사칙연산과 나머지+덧셈정수, 실수 복소수, 문자열
-뺄셈정수, 실수, 복소수
*곱셈정수, 실수, 복소수
/나눗셈정수, 실수, 복소수
%나머지정수
비트연산&AND정수
|OR정수
^XOR정수
&^비트클리어정수
시프트연산<<왼쪽 시프트정수 << 양의 정수
>>오른쪽 시프트정수 >> 양의정수

비트연산자

비트 연산자는 비트(bit) 단위로 논리 연산을 할 때 사용하는 연산자입니다.
또한, 비트 단위로 전체 비트를 왼쪽이나 오른쪽으로 이동시킬 때도 사용합니다.

ABA&BA|BA^BA&^B
00000^ 연산 수행 후, &연산 수행
10011
01011
11110

7장 - 함수

  • 수학 : 들어가는 변수의 값으로 정해져있는 수식에 대입하여 결과를 도출한다. 입력이 들어가면 결과가 나온다.
  • 프로그래밍 : 수학과 의미론적으로는 동일하다. 함수형 언어(functional language)에서는 수학적 의미와 유사하다. 하지만 Go 언어는 함수형 언어가 아니다. Go에서 함수는 코드 블럭이다. 어떠한 기능을 담고 있는 블럭이다.
  • Go 프로그래밍에서 함수의 정의
    • 함수 정의 키워드(func) : 중괄호({}) 안의 함수를 정의 하겠다는 키워드
    • 함수명(Add) : Add라는 이름의 함수 명을 정의, 함수명은 사용자 임의로 변경이 가능하다. 정의된 함수명으로 외부에서사용하여 해당 함수를 사용할 수 있다.

 

  • 매개변수(a int, b int) : 매개변수는 사용자 임의로 정할 수 있다. 정의된 함수를 호출할 때, 해당 매개변수가 들어가야한다. 함수 내부에서 매개변수를 통해 함수 실행이 진행될 수 있다. 파라미터(parameters), 아규먼트(arguments) 같은 의미다.
    • 반환타입(int) : 함수가 반환될 타입을 선언한다
    • 함수 코드 블록({ return a+b }) : 중괄호({})안에 실행할 코드를 작성한다. 함수 호출 시, 해당 코드가 실행된다. return이 있다면 결과를 반환한다.
    • 재귀호출(recursive call)
      • 자기 자신을 호출
      • 호출에서 탈출하는 조건 필수
      • 재귀 호출 실행은 스택(stack)에 쌓인다.

+ Recent posts