백엔드, 기타/Golang

Golang 1. 기본 문법 1)타입, for, switch문

데브힐러 2020. 8. 13. 00:37
반응형

프로그래밍 기술은 빠르게 발전하며 개발자는 그에맞춰 새로운 기술을 꾸준히 습득해야 한다.

한국은 전자정부프레임워크, Java공화국이다. 네이버, 카카오를 비롯한 대기업 뿐만 아니라 SI회사에서 파견을 나가도 대다수 Java 스프링으로 개발한다. 일본에서도 Java 수요가 높으며 할줄알면 먹고사는데 지장에 없다. 

 

 

엔터프라이즈 형에 적합한 자바보다 새로운 언어에 도전하고 싶어졌다. 더 간결하고 빠른 언어로 웹서버를 구축해보고 싶다.

 

 

몇 달 전부터 Golang이 눈에 들어왔다.

do, while이 없고 단순한 문법.

클래스가 없음. C, C++의 포인터가 있어 메모리 레이아웃이 가능하며 자바처럼 가비지 콜렉터가 있다.(이에 대한 장, 단점이 존재) 병행처리(conccurency), 고루틴, 패닉 등등 다양한 기능이 눈에 띈다. 이 언어가 맘에 들고 재미있어보인다. 우선 이번달 목표로 golang기초를 떼서 웹서버를 구축해보기로 했다. 

 

기본 문법을 기록으로 남긴다.

 

 

1. 변수 선언


	//변수 선언법
    var i int
    var s string
    var age int = 20
    
    age := 20 // :=방법은 for나 if블럭 안에서 지역변수를 선언할 때 유용하다. func 바깥에서는 불가능
    
    var(
    	name string
        age int
        weight float
    )

 

 

2. 상수


    const(
    	AIR=0
        EARTH=1
        STAR=2
    )
    
    const(
    	Red = 1<<iota //비트 하나씩 밀어낼 때 사용
        Orange
        Yellow
        Green
    )

 

 

3. for문


	/*
    for 초기화구문; 조건식; 후속작업{
    } 
    초기화구문과 후속작업은 생략 가능
    */
    
    //for문 배열 출력
package main

import "fmt"

func main (){
    array := [5]int{13,23,33,43,53}
    for i:=0; i<len(array); i++{
    	fmt.Println(array[i])
    }
}

 

----> #for문 출력결과


13
23
33
43
53

 

 


//range를 사용한 배열 출력(i는 인덱스 변수)

    a := [5]int{14,24,34,44,54}
    
    for i, value := range a{
    	fmt.Println(i, value)
    }
    
    
//index변수를 생략할 경우 _를 사용

    b := [5]int{11,22,33,44,55}
    
    for _, value := range b{
    	fmt.Println(value)
    }

 

----> #range를 사용한 배열 출력결과


1 14
2 24
3 34
4 44
5 54

11
22
33
44
55

 

 

4. switch문


x:=[5]int{32, 33, 44, 1, 2}
y:=[5]int{4, 5, 22, 79, 2, 1}
    
    for i:=0; i<len(x){
    	switch a,b := x[i], y[i]; {
        case a<b:
        	fmt.Println("a<b")
        case a==b:
        	fmt.Println("a equals b")
        case a>b:
        	fmt.Println("a>b")
        }
    }
    

 

 

반응형