BLOG main image
분류 전체보기 (313)
교육 (13)
NEIS (6)
Edufine (0)
Programmer (5)
Android Programming (1)
Internet W3 (18)
JAVA Programming (9)
JSP/Servlet (1)
Framework (7)
Spring For Beginner (4)
eGovFrame (10)
MEAN Stack (2)
NodeJS (5)
SublimeText (30)
SublimeText_Tips (18)
Eclipse (16)
JavaScript (8)
jQuery (12)
jQuery_tips (1)
Ajax (3)
DWR(Direct Web Remote) (4)
JSON(JS Object Notation) (4)
Oracle (2)
MySQL (28)
OS (16)
Download (3)
Life (10)
Favorit Site (1)
Books (2)
Healthy (1)
Stocks (1)
HTML5/CSS (1)
Python (4)
Security (7)
CISSP (0)
Ruby On Rails (5)
일기장 (0)
영어 교과서(중2) (3)
알고리즘 (0)
Go Lang (3)
VB 2010 (12)
C# (1)
정보보안기사(네트워크보안) (0)
업무 활용 엑셀 (11)
틈틈이 활용팁 (14)
하루 하루 살아가며 ……. (2)
기술 (1)
파이썬 & 데이터분석 (1)
Visitors up to today!
Today hit, Yesterday hit
daisy rss
tistory 티스토리 가입하기!
2016. 4. 8. 15:34

참고 사이트 : http://go-tour-kr.appspot.com/

A Tour of Go 사이트에서 실습한 내용을 요약한 글 입니다.


# 화면 출력
fmt.Println()
fmt.Println("Happy", math.Pi, "Day")
fmt.Printf("Now you have %g problems.",math.Nextafter(2, 3))

참고 : https://golang.org/pkg/fmt/


# 자료형
bool
string
int  int8  int16  int32  int64
uint uint8 uint16 uint32 uint64 uintptr
byte // uint8의 다른 이름(alias)
rune // int32의 다른 이름(alias), 유니코드 코드 포인트 값을 표현합니다.
float32 float64
complex64 complex128


# 함수 선언
func add(x int, y int) int { }
func add(x, y int) int { }
func swap(x, y string) (string, string) { }
func split(sum int) (x, y int) { } // 반환 변수 이름을 미리 정함


# 변수 선언
var x, y, z int
var c, python, java bool
var x, y, z int = 1, 2, 3
c, python, java := true, false, "no!" // ':=' 함수 안에서만 사용 가능
 
# 변수 초기화
var x, y, z int = 1, 2, 3
var c, python, java = true, false, "no!"


# 상수 선언
const Pi = 3.14
const World = "안녕"
const Truth = true


# 반복문 (for 밖에 없음)
for i := 0; i < 10; i++ { }
for sum < 1000 { }
for { } // 무한 루프


# 조건문
if x < 0 { }
if v := math.Pow(x, n); v < lim { } // 결과 v는 else에서도 사용 가능


# 구조체
type Vertex struct { X int;  Y int }
v := Vertex{1, 2}
v.X = 4
 
# 구조체 리터럴
원하는 필드를 `{Name: value}` 구문을 통해 할당
r = Vertex{X: 1}  // Y:0 is implicit


# 포인터
포인터 연산 제공 안함
p := Vertex{1, 2}
q := &p
 
# new
new(T) 는 모든 필드가 0(zero value) 이 할당된 T 타입의 포인터를 반환
(zero value 는 숫자 타입에서는 0, 참조 타입에서는 nil)
v := new(Vertex)


# 슬라이스 (Slices) // 배열
p := []int{2, 3, 5, 7, 11, 13}
p[1:4] // 3, 5, 7
p[:3] // 2, 3, 5
p[4:] // 11, 13

for i := 0; i < len(p); i++ { }


# 슬라이스 만들기
a := make([]int, 5)
b := make([]int, 0, 5) // 세번째 매개변수로 capacity 제한
var z []int // 빈 슬라이스, 최대 크기 0

참고 : http://golang.org/doc/articles/slices_usage_and_internals.html


# 레인지 // itrerator 개념
for 반복문에서 range 를 사용하면 슬라이스나 맵을 순회(iterates)

var pow = []int{1, 2, 4, 8, 16, 32, 64, 128}
for i, v := range pow { } // v = 1, 2, 3... 128


출처 : http://lazypaul.tistory.com/268

반응형

'Go Lang' 카테고리의 다른 글

GO :: LiteIDE 개발 환경 만들기  (0) 2016.04.08
Go 언어 학습을 위한 사이트  (0) 2016.04.06