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) 단위로 논리 연산을 할 때 사용하는 연산자입니다.
또한, 비트 단위로 전체 비트를 왼쪽이나 오른쪽으로 이동시킬 때도 사용합니다.
A | B | A&B | A|B | A^B | A&^B |
0 | 0 | 0 | 0 | 0 | ^ 연산 수행 후, &연산 수행 |
1 | 0 | 0 | 1 | 1 | |
0 | 1 | 0 | 1 | 1 | |
1 | 1 | 1 | 1 | 0 |
7장 - 함수
- 수학 : 들어가는 변수의 값으로 정해져있는 수식에 대입하여 결과를 도출한다. 입력이 들어가면 결과가 나온다.
- 프로그래밍 : 수학과 의미론적으로는 동일하다. 함수형 언어(functional language)에서는 수학적 의미와 유사하다. 하지만 Go 언어는 함수형 언어가 아니다. Go에서 함수는 코드 블럭이다. 어떠한 기능을 담고 있는 블럭이다.
- Go 프로그래밍에서 함수의 정의
- 함수 정의 키워드(func) : 중괄호({}) 안의 함수를 정의 하겠다는 키워드
- 함수명(Add) : Add라는 이름의 함수 명을 정의, 함수명은 사용자 임의로 변경이 가능하다. 정의된 함수명으로 외부에서사용하여 해당 함수를 사용할 수 있다.
- 매개변수(a int, b int) : 매개변수는 사용자 임의로 정할 수 있다. 정의된 함수를 호출할 때, 해당 매개변수가 들어가야한다. 함수 내부에서 매개변수를 통해 함수 실행이 진행될 수 있다. 파라미터(parameters), 아규먼트(arguments) 같은 의미다.
- 반환타입(int) : 함수가 반환될 타입을 선언한다
- 함수 코드 블록({ return a+b }) : 중괄호({})안에 실행할 코드를 작성한다. 함수 호출 시, 해당 코드가 실행된다. return이 있다면 결과를 반환한다.
- 재귀호출(recursive call)
- 자기 자신을 호출
- 호출에서 탈출하는 조건 필수
- 재귀 호출 실행은 스택(stack)에 쌓인다.
'공부 > 스터디' 카테고리의 다른 글
.Net 6 공부하기 with Chat GPT (0) | 2023.07.18 |
---|---|
회사에서 진행하는 이색 체험, 그림책 상상력 워크숍 (0) | 2023.06.21 |
[영어][스터디미니][단계완료] 성인 영어 학습지 후기 - 1단계 (0) | 2023.06.03 |
[영어][스터디미니]성인 영어학습지 - 환급원정대 시작하기 (0) | 2023.04.10 |