잔글 (HotCat을 사용해서 분류:컴퓨터 프로그래밍을(를) 삭제함, 분류:프로그래밍 시리즈을(를) 추가함) |
잔글 (봇: 자동으로 텍스트 교체 (-<source(.*)> +<syntaxhighlight\1>)) |
||
12번째 줄: | 12번째 줄: | ||
==Hello, World!== | ==Hello, World!== | ||
네, 그 유명한 KnR에서 유래된 유서깊은 코드입니다. | 네, 그 유명한 KnR에서 유래된 유서깊은 코드입니다. | ||
< | <syntaxhighlight lang="go"> | ||
package main | package main | ||
import "fmt" | import "fmt" | ||
25번째 줄: | 25번째 줄: | ||
import는 다른 언어와 같이 다른 패키지를 이 프로그램에서 사용하겠다고 선언하는 부분입니다. | import는 다른 언어와 같이 다른 패키지를 이 프로그램에서 사용하겠다고 선언하는 부분입니다. | ||
< | <syntaxhighlight lang="go"> | ||
import "fmt" | import "fmt" | ||
import "math" | import "math" | ||
38번째 줄: | 38번째 줄: | ||
==메소드== | ==메소드== | ||
Go에서 메소드를 선언하는 방법은 다른 언어와 다른 <del>변태같은</del>방법입니다. | Go에서 메소드를 선언하는 방법은 다른 언어와 다른 <del>변태같은</del>방법입니다. | ||
< | <syntaxhighlight lang="go"> | ||
func add(x int, y int) int{ | func add(x int, y int) int{ | ||
return x+y | return x+y | ||
47번째 줄: | 47번째 줄: | ||
또한 아래와 같이 같은 타입의 매개변수는 가장 뒤에 있는 매개변수의 뒤에 타입을 선언해서 글자 수를 줄일 수 있고, Python과 같이 Multiple Return을 지원합니다. | 또한 아래와 같이 같은 타입의 매개변수는 가장 뒤에 있는 매개변수의 뒤에 타입을 선언해서 글자 수를 줄일 수 있고, Python과 같이 Multiple Return을 지원합니다. | ||
< | <syntaxhighlight lang="go"> | ||
func addAndMult(x , y int) (int, int){ | func addAndMult(x , y int) (int, int){ | ||
return x+y, x*y | return x+y, x*y | ||
53번째 줄: | 53번째 줄: | ||
</source> | </source> | ||
Go의 특징으로 리턴값에 이름을 붙여서 메소드 내부에서 사용할 수 있습니다. | Go의 특징으로 리턴값에 이름을 붙여서 메소드 내부에서 사용할 수 있습니다. | ||
< | <syntaxhighlight lang="go"> | ||
func split(sum int) (x, y int) { | func split(sum int) (x, y int) { | ||
x = sum * 4 / 9 | x = sum * 4 / 9 |
2021년 2월 8일 (월) 03:07 판
들어가기 전에
Go는 구글에서 만든 프로그래밍 언어입니다.
GC(가비지콜렉션)기능이 있어 메모리관리가 편하고 Concurrent Program(동시 프로그램)[1]을 작성하기 편하게 설계되어 있습니다.
Go의 다른 특징으로는 Type-safe, Fast compile이 있습니다.
첫 걸음마
Hello, World!
네, 그 유명한 KnR에서 유래된 유서깊은 코드입니다. <syntaxhighlight lang="go"> package main import "fmt"
func main(){
fmt.Println("Hello, World!")
} </source> package는 이 코드 파일(패키지, 일반적으로는 Class, Python의 스크립트 파일 이름)의 이름을 선언하는 명령어입니다.
파일의 이름과 반드시 같아야 합니다.
import는 다른 언어와 같이 다른 패키지를 이 프로그램에서 사용하겠다고 선언하는 부분입니다. <syntaxhighlight lang="go"> import "fmt" import "math"
import (
"fmt" "math"
) </source> 이와 같이 소괄호를 사용 할 수도 있고 각각 선언해 줄 수 있습니다.
메소드
Go에서 메소드를 선언하는 방법은 다른 언어와 다른 변태같은방법입니다.
<syntaxhighlight lang="go">
func add(x int, y int) int{
return x+y
} </source> 와 같이 매개변수 이름의 뒤에 매개변수의 타입을 선언합니다. 마찬가지로 리턴타입(메소드가 실행한 뒤 반환되는 값)의 선언도 매개변수를 다 선언 한 후에 합니다. 또한 아래와 같이 같은 타입의 매개변수는 가장 뒤에 있는 매개변수의 뒤에 타입을 선언해서 글자 수를 줄일 수 있고, Python과 같이 Multiple Return을 지원합니다.
<syntaxhighlight lang="go"> func addAndMult(x , y int) (int, int){
return x+y, x*y
} </source> Go의 특징으로 리턴값에 이름을 붙여서 메소드 내부에서 사용할 수 있습니다. <syntaxhighlight lang="go"> func split(sum int) (x, y int) {
x = sum * 4 / 9 y = sum - x return
} </source> 위와 같이 x와 y에 직접 값을 대입해서 리턴해 줍니다.
외부에서의 접근
대부분의 현대 프로그래밍 언어는 객체지향설계를 지원하기 위하여 외부에서 각 클래스의 내부로 접근하는 권한을 설정할 수 있도록 제공을 하고 있습니다.
Go도 마찬가지로 외부에서 접근할 수 있는 메소드와 변수를 명시할 수 있는 방법을 제공합니다.
이름의 첫 문자를 대문자로 타이핑하시면 외부에서 불러와 쓸 수 있는 Public으로 설정됩니다.구글 아니랄까 변태적인...
- ↑ 작업을 동시에 실행하는 프로그램입니다. 단순한 멀티쓰레딩 또는 멀티프로세싱보다 상위개념입니다.