30일간의 여정: 1일차

11410 단어 beginnersgoprogramming

소개



저는 앞으로 30일 동안 Golang을 배우기 위한 챌린지에 참여하기로 결정했습니다. 나는 Go hackathon을 찾았고 한동안 그것을 배우고 싶었기 때문에 이것이 완벽한 기회라고 생각했습니다. 저는 이 학습을 몇 가지 방법으로 나누기로 결정했습니다. 아이디어는 해커톤을 위한 애플리케이션을 구축하는 것입니다. 내 현재 앱 아이디어는 시민 과학 API입니다. 이 API를 통해 사용자는 새나 곤충과 같은 동물 사진을 업로드할 수 있습니다.

학습 내용을 다음 범주로 나누었습니다.
  • 1주 및 2주차: Golang의 구문과 기본 사항을 배우고 gophercises 수행
  • 3주차 및 4주차: API 구축

  • Golang 구문



    이 정보는 Golang 문서, 특히 Go by example을 참조합니다.

    변수


  • Golang의 변수는 C#, Java와 같이 명시적으로 선언됩니다
  • .
  • Golang에서 한 줄에 여러 변수를 선언할 수 있음
  • 유형이 지정되지 않은 경우 go는 초기화된 값에서 유형을 유추합니다.

  • var a = "Hello world"
    var age int = 8
    // When the type has been declared it is used for both variables
    var name, game string = "Scott Pilgrim", "vs The world"
    // This is allowed because go will infer the types from initialization
    var name, age = "Knives Chau", 18
    


  • 선언되었지만 초기화되지 않은 변수는 값이 0이 됨
  • 선언되었지만 초기화되지 않은 모든 변수에는 유형이 있어야 합니다.

  • var one int
    // one = 0
    var decision bool
    // decision = false
    var word string
    // word = ''
    


  • :=는 예를 들어 변수를 선언하고 초기화하는 약어입니다.

  • num := 50
    


    상수


  • Go의 상수는 다른 언어와 동일하게 작동합니다. const는 문자열, 문자, 부울 또는 숫자 유형일 수 있습니다.

  • const test string = "Steven Stills"
    


  • 숫자 상수가 임의 정밀도로 산술 연산을 수행함
  • 숫자 상수는 함수에서 제공되거나 유형으로 변환될 때까지 유형이 없습니다
  • .

    흐름 제어



    루프


  • Go에는 for 루프만 있으며 다음과 같은 방법으로 초기화할 수 있습니다.

  • i := 0
    for i <= 4 {
        fmt.Println(i)
        i = i + 1
    }
    
    for j := 4; j <=8; j++ {
        fmt.Println(j)
    }
    


  • 무한 루프에는 조건이 없으며 break 문으로 중지할 수 있습니다.

  • for {
        fmt.Println("The infinite sadness")
        break
    }
    


  • continue 키워드를 사용하여 루프의 다음 반복으로 이동할 수 있습니다.

  • for i :=3; i <= 33; i++ {
        if i % 3 == 0 {
     continue
        }
        fmt.Println("Love evans")
    }
    


    다른 경우라면


  • if else 블록은 대부분의 다른 프로그래밍 언어와 같습니다
  • .
  • if 문에는 괄호가 필요하지 않지만 중괄호는

  • if x == 3 {
        fmt.Println("Young Neil")
    } else if x > 5 {
        fmt.Println("Neil")
    } else {
        fmt.Println("Meh")
    }
    


  • Go의 if 블록은 조건 앞에 명령문을 가질 수 있습니다. 문에서 선언된 모든 변수는 if 블록의 모든 분기에서 사용할 수 있습니다.

  • if x := 4; x < 0 {
        fmt.Println(x)
    } else if x > 1 {
        fmt.Println("True")
    } else {
        fmt.Println("Do something else")
    }
    


  • Go에는 javascript와 같은 3항 if 문이 없습니다. x == 2? "Yes": "No"

  • 스위치 문


  • Go의 switch 문은 다른 프로그래밍 언어와 같습니다
  • .
  • 기본 케이스는 선택 사항입니다
  • .
  • 사례에 여러 표현식이 있을 수 있음
  • 스위치는 if 문처럼 기능하게 하는 표현식을 가질 수 없습니다.

  • switch i {
    case 1:
        fmt.Println("One")
    case 2:
        fmt.Println("Two")
    case 3, 4, 5:
        fmt.Println("Others")
    default:
        fmt.Println("Default is optional")
    }
    
    // Swtich with no condition
    t := 5
    switch {
    case t < 4:
        fmt.Println("Less than 4")
    default:
        fmt.Println("Else")
    }
    


  • 유형 스위치가 값 대신 유형을 비교함
  • 이 스위치를 사용하여 인터페이스 유형을 검색합니다
  • .
  • 유형 스위치 외부에서 .(type) 사용이 작동하지 않음

  • myType := func(i interface{}){
        switch t := i.(type){
        case bool:
     fmt.Println("Im boolean")
        case int:
     fmt.Println("Im integer")
        default:
     fmt.Println("Im anything else")
        }
    }
    


    오늘은 유익한 첫날이었고 앞으로 더 많은 일이 있을 것입니다.

    좋은 웹페이지 즐겨찾기