오래 못 할 짓 하지 않기
Go언어 정리 본문
기본적인 파일의 형태는 이렇다.
참고로 알아두어야 하는 건 [ fmt.Println ] 에서 볼 것들이다.
하나의 모듈에서 만든 Println에서 대문자로 선언된 건 다른 곳에서 가져와 사용할 수 있다.
>> Go에서의 대문자 선언
= Java에서의 Public class
변수
변수 선언 형태는 다음과 같다.
var {변수명} { 타입 } = {할당값}
이걸 좀 더 간단하게 바꾼다면
{변수명}:={할당값}
이렇게 하면 해당 할당값에 맞는 타입을 알아서 지정해준다
함수
선언 형태
func {함수명} ( a {type} , b {type} ) {return type} {
return @@;
}
[ 기본 형태 ]
+ Go 에서는 하나의 함수가 여러 개의 Return값을 가질 수 있다!!
[ 여러 개의 Return을 갖는 형태 ]
받을 필요가 없다면 위 경우에는 a,_ 로 해서 비워두면 a에만 값을 받을 수 있다..
[ 여러 개의 argument를 갖는 형태 ]
근데 이건 해당 words에 배열로 들어가는 것 같다.
나처럼 숫자로 넣으려면 좀 다른 방법이 필요할 듯!
어떻게 하는지까진 안 만들겠지만
그냥 알아두자, 함수 param을 받는 곳에 변수명...{type}으로 하면 들어가는 param 수 제한을 받지 않는다.
대신, 배열로 들어간다!
[ Advanced of Return ]
위 함수를 바꿔보자. 변수명을 추가해서 조금 더 명시적으로 알려줘보자.
i) return 타입 선언하는 곳에 미리 변수를 선언해둔다.
ii) 그 변수를 우리가 원하는대로 가공한다.
iii) return만 시키면 우리가 평소에 하던 방식과 같이 된다.
하지만 선언하는 부분이 줄었기 때문에 코드가 훨씬 간단해졌다.
그리고 return이 된 뒤에 실행시키고 싶은 게 있다면
함수 초반에 Defer로 필요한 동작을 추가해준다.
package main
import "fmt"
func hash_multi_ret(a int) (int, string) {
defer fmt.Println("계산 끝")
a = a * 2
a = a + 3
a = a * 7
a = a + 13
b := "메롱"
return a, b
}
func hash_repeat(a ...int) int {
for index, numbers := range a {
numbers = numbers * 2
numbers = numbers + 3
numbers = numbers * 7
numbers = numbers + 13
fmt.Println(index, numbers)
}
return 1
}
func main() {
a, b := hash_multi_ret(5)
fmt.Println("result is ", a, b)
fmt.Println("repeated result is ", hash_repeat(3, 5, 7, 9, 19))
}
Pointer는 C랑 다른 게 없기 때문에 점프
Arrays
이렇게 5개의 String을 담을 수 있는 배열이 있다.
여기에서 5개 이상으로 추가하게되면 새로 선언을 해야하거나 복잡하다.
이에 대한 해결 방법이 있다.
1) 우선 크기에 대한을 풀어둔다.
2) append 함수를 사용하여 해당 배열 뒤에 추가해준다.
Structures
엄.. 딱히 C랑 다른 게 없다. 좀 더 간단한 거 같기도 하고
'4학년 > 캡스톤 (Capstone)' 카테고리의 다른 글
rclone 주요 기능 분석 ( flow 위주 ) (0) | 2024.12.27 |
---|---|
Go 언어 실습 3 코드 (0) | 2024.12.24 |
Go 언어 실습 2 (0) | 2024.12.24 |
Go 언어 실습 1 (0) | 2024.12.23 |
Ceph Storage (0) | 2024.08.12 |