Languages/Go

· Languages/Go
필요한 모듈 "encoding/csv" - csv 형식의 데이터를 관리하기 위한 모듈 "os" - 새로운 파일을 만들기 위한 모듈 모듈 사용하기 import ( "os" "encoding/csv" ) func main(){ // test.csv 파일 만들고, file 이란 변수로 파일에 접근한다. file, err := os.Create("test.csv") // test.csv 파일에 데이터 작성하는 기능 w 만들기 w := csv.NewWriter(file) // w 내부에 Write 메서드 이용해서 데이터 작성하기 - 배열을 인자로 받고, 1번째 행부터 차례대로 입력된다. // Write는 직접 파일에 쓰지 않고, Flush 함수를 기다린다. data := []string{"ONE","TWO","T..
· Languages/Go
사용할 모듈 "net/http" - ( url 접속해서 http 요청 보내고, 응답 받는 모듈 ) "github.com/PuerkitoBio/goquery" - ( html body 요소를 분석해서, 특정 정보를 가져오는 모듈 ) net/http 사용하기 import ( "net/http" "fmt" ) package main func main(){ // net/http 모듈 사용해 네이버 페이지 정보 요청하기 ( Get ) // res(response)와, err(error) 받아오기 res,err := http.Get("www.naver.com") // 페이지를 정상적으로 응답받았는지 확인하기 // 정상 : 200 fmt.Println(res.StatusCode) } goquery 사용하기 impor..
· Languages/Go
코드 작성 log 패키지의 Fatal 함수를 사용하면, 원하는 로그를 출력하고, 프로그램을 종료 시킬 수 있다. package main import ( "fmt" "log" ) func main(){ for i := 0; i < 10; i++ { fmt.Println(i,"번째 줄") if i == 5 { log.Fatal(i, "에서 종료!") /* Fatalln : 한 라인에 출력 Fatalf : 포멧 형식 log.Fatalf("%d 번째 줄",i) */ } } } 코드 실행 결과 0 번째 줄 1 번째 줄 2 번째 줄 3 번째 줄 4 번째 줄 5 번째 줄 2022/03/14 20:42:53 5 에서 종료! exit status 1
· Languages/Go
// 에러관리하기 위한 모듈 불러오기 import ( "errors" ) // 에러를 반환 할때는, error 형식으로 지정해준다. func (amount int) error { if(100 > amount){ // 새로운 에러 만들고, 반환하기 return errors.New("amount is more then 100.") } // 빈칸 반환 ( None, Null 과 비슷한 용도 ) return nil }
· Languages/Go
Go의 메서드란? 구조(struct) 전용 함수 해당 struct를 사용할때, 공통적으로 사용할 함수를 만들 수 있다. ex ) 은행계좌 객체 - 입금 함수, 출금 함수 은행계좌 구조와 메서드 만들기 // 구조 만들기 - 은행계좌 구조 type account struct{ owner string balance int } // account구조의 전용함수(메서드) 만들기 - *를 붙혀 원본 데이터를 직접수정! // 은행 계좌에 입금하는 함수 func (a *account) Deposit(amount int){ fmt.Println("Deposit.", amount) a.balance += amount } 이제 account 구조를 사용할때마다, 내부에 Deposit 함수가 포함된다!
· Languages/Go
패키지 방식이란? go의 코드를 여러개의 파일로 나누어 관리하는 것 ( 하나의 파일 : 패키지 ) go에서 패키지 만들기 // main.go 파일이 있는 폴더에, 새로운 폴더 만들고 새로운 파일 만들기 // ./accounts/accounts.go // 이 파일이 패키지 임을 go에게 알려줌 package accounts // 패키지 내부에서 struct 만들기 // go에서 맨앞글자(a)가 소문자이면, private 취급되어 다른 파일에서 사용할 수 없게 숨겨진다. type account struct{ owner string balance int } // 다른 파일에서 사용할 수 있는 public함수 만들기 (맨앞글자 대문자) func NewAccount(owner string) *account{ ac..
· Languages/Go
return(반환) 형식을 함수 생성시 지정한다. // 대소문자 변경을 위한 모듈 불러오기 import ( "strings" ) // 인자로 name을 받아, length와 uppercase를 반환하는 함수 만들기 func lenAndUpper(name string) (length int, uppercase string){ length = len(name) uppercase = strings.ToUpper(name) // 반환하는 변수를 이미 위에서 지정했기 때문에, 다시 지정할 필요가 없다! return } defer를 함수내에 사용해, 콜백함수를 만들 수 있다. // 사용할 모듈 불러오기 import ( "fmt" "strings" ) func lenAndUpper(name string) (lengt..
· Languages/Go
Go 란? 구글에서 개발한 프로그래밍 언어 Go 설치하기 The Go Programming Language Download Go Binary distributions available for Linux, macOS, Windows, and more. // You can edit this code! // Click here and start typing. package main import "fmt" func main() { fmt.Println("Hello, 世界") } Hello, World! Conway's Game of Life Fibonacci golang.org Go의 특징과 필요성 한 가지 기능을 구현하기 위한 방법이 한 단개 밖에 없다. ( 코드의 획일화 ) - 배워야 할 것이 적다 - 다른..
MOONCO
'Languages/Go' 카테고리의 글 목록