변수 정의
var 변수명 자료형
var a int =1
var b string = ""
다중 변수 처리
var {
a int = 1
b string ="hello"
}
사용하지 않는 변수 및 사용하지 않는 package는 _ 사용
ex) a:= 1
b:= 2
_ = b
go는 컴파일 언어
go는 가비지 컬렉션을 제공한다.
go 루틴 지원
- 채널을 통해 데이터를 공유하고 실행순서를 제어함.
go언어 특징
- 메모리 관리가 다소 느슨해도 되고 규모가 크고 복잡하며 유지 보수가 빈번한 곳에사용
- 다양한 네트워크 라이브러리를 제공하므로 인터넷 프로그래밍에 유리.
%GOROOT% :
%GOPATH%
- 사용자 계정의 GO 위치
- 기존 PATH에 ;%GOPATH%\bin 을 추가해서 사용
통합개발환경
- liteIde
- Atom
- eclipse
- go Land
- IntelliJ IDEA Community Edition ( plugin 설치) : 설치 잘 안됨.
특징 :
- 문장 끝에 ; 를 사용하지 않음.
- 시작 파일은 package main , func main을 지정해야함.
-
컴파일 방법
- go build 파일명.go
코드 정렬
gofmt -w 파일명.go
룬(rune)
- 유니코드(utf-8) 문자를 저장할때 사용 '' 사용 "" 사용시 오류 발생
var r1 rune ='한'
var r2 rune ='\ud55c' // 한
숫자 연산에서 자료형이 다른 경우 컴페일 에러 발생하므로 명시적 자료형 변환 필요
var num1 int = 3
var num2 float32 =3.2
fmt.Println(float32(num1)+ num2)
자료형 오버플로우 언더플로우
한글 len 으로 확인시 x3해야 함.
'한글'을 두글자를 리턴하기 위해서는 utf8.runeCountInString 함수 사용
상수선언 : 선언과 동시에 초기화, 값 변경 못함.
const age int = 1
상수열거형
const (
sunday =0
monday =1
)
iota : 순서대로 값을 입력할때 사용
const (
sunday = iota
monday
)
전역 패키지 정의
import . "fmt"
func main(){
Println("hello")
}
별칭 사용
import f "fmt"
조건문에는 () 를 사용하지 않는다.
반복문
for만 있음.
for 초기값;조건식;변화식{
}
레이블 사용가능
goto : 정해진 레이블로 직접이동
분기문
switch
fallthrough : 특정 case문을 실행한 후 다음 case문을 실행할 경우 사용
여러조건 case 2,3,4:
조건식 사용 case a>0:
배열 사용
var a[5] int
배열을 여러 줄로 나열할때 마지막에도 ,를 넣어야 함.
b:=[5]int{
1,
2,
3,
4,
5,
}
배열 range 사용
for 인덱스,값=range 배열{}
ex) for i,value=range a{
}
인덱스 생략시
for _,value=range a{
}
슬라이스 - 공부 더 필요함.
var a [] int //[]안에 길이 지정하지 않음.레퍼런스타입.
공간할당은 make 함수를 통해서 사용
var a [] int = make([] int,5)
슬라이스 복사
copy 사용 copy(b,a)
맵사용
key-value
var a map[string] int // 키는 string , 값은 value
make로 초기화
var a map[string] int = make(map[string] int)
키가 존재하지 않을 경우 빈값을 리턴하고
두개의 값을 받을 수있고 첫번째는 value 두번째는 키 존재여부
맵 순회
for 키,값 :=range 맵{}
맵 데이터 삭제
delete(map,key)
맵 안에 맵 만들기
댓글