목록- (91)
Study Memory Work
구조체 생성자 패턴 인스턴스 선언과 동시에 값을 초기화 하는 것 ---> 생성자 패턴을 이용한 것임 type account struct { number string balance float64 interest float64 } func main() { // 선언과 동시에 값 초기화 kim := account{number: "234-123", balance: 10000000, interest: 0.014} fmt.Println(kim) } 포인터형 구조체 생성자 패턴 만들기 포인터형의 구조체 인터페이스는 선언과 동시에 값 복사가 되지 않는다. 반드시 아래와 같은 형식을 취해줘야 함. ---> 생성자 패턴을 이용할 수 없는 것임. var lee *account = new(account) 생성자 패턴 처럼 만..
구조체 Go에서 필드들의 집합체, 또는 컨테이너를 구조체라 한다. 구조체는 필드는 갖지만 메소드는 갖지 않는다. 객체지향 방식을 지원한다. -> 리시버를 통해 구조체와 메소드를 연결 상속, 객체, 클래스 개념 없음 // 구조체 선언 type Account struct { number string balance float64 // 잔액 interest float64 //이자 } // 리시버를 이요해 메소드와 구조체 연결 func (a Account) Calculate() float64 { return a.balance + (a.balance * a.interest) } func main() { // 인스턴스 생성1 kim := Account{number: "123-456", balance: 10000000..
Go는 객체 지향 타입을 구조체로 정의한다. (클래스, 상속 개념이 없음) Go는 전형적인 객체지향의 특징을 가지고 있지는 않지만 인터페이스 등을 통한 다형성 지원, 구조체를 통한 클래스형태의 코딩이 가능하도록 이루어져 있다. ( Go는 객체지향 프로그래밍 이다.) 객체지향 활용 첫번째 : 구조체 클래스 없이 상태, 메소드를 분리해서 정의한다 (결합성 없음) 구조체와 메소드를 연결하여 타 언어의 클래스 형식처럼 사용 가능하다(객체지향) 사용자 정의 타입 : 구조체, 인터페이스, 기본 타입(int, float, string ...), 함수 사용자 정의 구조체 구조체 // 사용자 정의 구조체 type Car struct { name string color string price int tax int } 일반..
파일 읽기 Read Open > file size 추출 > file.read package main import ( "fmt" "os" ) func errCheck1(e error) { if e != nil { panic(e) } } func errCheck2(e error) { if e != nil { fmt.Println(e) return } } func main() { // 파일 읽기 예제1 file, err := os.Open("fileIO/test_read.txt") errCheck1(err) fileInfo, err := file.Stat() // 파일 정보들. errCheck2(err) fd1 := make([]byte, fileInfo.Size()) // 파일사이즈만큼의 byte 배결 생성..
파일생성 : Create package : os 새 파일 작성 및 파일 열기 파일 관련 메소드에는 예외처리를 확실히 해줘야 한다. 파일을 오픈하고 나면 꼭 닫아주어야한다. package main import ( "fmt" "os" ) func errCheck1(e error) { if e != nil { panic(e) } } func main() { file, err := os.Create("fileIO/anyfile.txt") errCheck1(err)// 예외처리 중요! // 파일 열고난 후에는 close 필수!! defer file.Close() } 파일 쓰기 : write, writeString, writeAt package : os // 예제 1 : Write s1 := []byte{123, ..
Document 예제로 배우는 Go 프로그래밍 - Go 에러처리 1. Go 에러 Go는 내장 타입으로 error 라는 interface 타입을 갖는다. Go 에러는 이 error 인터페이스를 통해서 주고 받게 되는데, 이 interface는 다음과 같은 하나의 메서드를 갖는다. 개발자는 이 인터페 golang.site 기본 에러처리 fmt.Errorf 를 return. 잘 쓰지 않는 방법..! func notZero(n int) (string, error) { if n != 0 { s := fmt.Sprint("Hello Golang : ", n) return s, nil } return "", fmt.Errorf("%d를 입력했습니다. 에러 발생!", n) } func main() { // error ..