본문 바로가기

Go

[묘공단] Tucker의 Go 언어 프로그래밍 20장~21장 20장 인터페이스 21장 함수고급편 20장 인터페이스 인터페이스의 구조는 아래소스와 같이 type 인터페이스명 interface { } 로 선언한다. type 키워드로 선언하기때문에 변수선언이 가능하다. 아래의 소스에서 Stringer라는 메서드를 만들었다. Student를 생성하여 , 해당 student를 stringer에 대입하여, stringer의 String()메서드를 호출하는 예제이다. //ch20/ex20.1/ex20.1.go package main import "fmt" type Stringer interface { // ❶ Stringer 인터페이스 선언 String() string } type Student struct { Name string Age int } func (s Studen.. 더보기
[묘공단] Tucker의 Go 언어 프로그래밍 18장~19장 18장 슬라이스 19장 메서드 18장 슬라이스 배열 : var a [4] int 슬라이스 : make([]byte,5) 아래 코드는 배열과 슬라이스의 차이, 슬라이스의 선언방법이다. var array [10]int // 배열선언 var slice []int // slice선언(길이가 0인 슬라이스) var slice1 = []int{1,2,3} // slice선언(길이가 3인 슬라이스) var slice2 = []int{1, 5:2 , 10:3} // {1,0,0,0,0,2,0,0,0,0,3} var array = [...]int{1,2,3} // array var slice = []int{1,2,3} // slice var slice = make([]int, 3) slice[1] = 5 var slic.. 더보기
[묘공단] Tucker의 Go 언어 프로그래밍 15장~17장 15장 문자열 Go에서 문자열의 타입명은 string이다. 문자열은 큰따옴표나 백쿼트로 묶어서 사용하는데, 백쿼트로 묶어서 사용하면 문자열안의 특수문자가 일반문자처럼 처리된다. (문자열 그대로 출력된다.) //ch15/ex15.1/ex15.1.go package main import "fmt" func main() { // ❶ 큰따옴표로 묶으면 특수 문자가 동작합니다. str1 := "Hello\t'World'\n" // ❷ 백쿼트로 묶으면 특수 문자가 동작하지 않습니다. str2 := `Go is "awesome"!\nGo is simple and\t'powerful'` fmt.Println(str1) fmt.Println(str2) } 큰따옴표로 문자열을 묶을경우 여러줄을 표현하려면 \n을 사용해야 .. 더보기
[묘공단] Tucker의 Go 언어 프로그래밍 12장~14장 12장 배열 배열은 같은 타입의 데이터들로 이루어진 저장소이다. 배열을 이루는 각 값은 요소라고 하고, 요소를 가리키는 위치값을 인덱스라고 한다. 아래의 소스는 배열을 사용한 간단한 예제이다. //ch12/ex12.1/ex12.1.go package main import "fmt" func main() { var t [5]float64 = [5]float64{24.0, 25.9, 27.8, 26.9, 26.2} // ❶ for i := 0; i < 5; i++ { // ❷ fmt.Println(t[i]) // ❸ } } 배열은 선언시 개수는 항상 상수여야한다. 아래의 소스에서 a배열선언문은 오류가 발생한다. 배열의 길이를 지정할때 상수가 아닌값으로 지정하였기때문이다. //ch12/ex12.2/ex12.2.. 더보기
[묘공단] Tucker의 Go 언어 프로그래밍 8장~11장 8장 상수 상수는 말그대로 변하지 않는 값을 말한다. 원주율(3.141592...)같이 변하지 않는 값을 정의할때 사용한다. 아래와 같이 상수 C를 선언한후에 값을 바꾸려고 하면 오류가 발생한다. //ch8/ex8.1/ex8.1.go package main import "fmt" func main() { const C int = 10 // ❶ 상수 선언 var b int = C * 20 // ❷ 대입문 우변에 값으로 동작합니다. C = 20 // ❸ 에러 발생 - 상수는 대입문 좌변에 올 수 없습니다. fmt.Println(&C) // } //ch8/ex8.2/ex8.2.go package main import "fmt" func main() { const PI1 float64 = 3.1415926535.. 더보기
[묘공단] Tucker의 Go 언어 프로그래밍 3장~7장 3장 Hello Go World 4장 변수 5장 fmt패키지를 이용한 텍스트 입출력 6장 연산자 7장 함수 3장 Hello Go World (https://madnight.github.io/githut/#/pull_requests/2023/4) package main /* go언어의 모든 코드는 반드시 package 선언으로 시작해야한다. main package는 프로그램 시작점을 포함하는 특별한 package이다. */ // fmt package 는 표준입출력을 다루는 package이다. import "fmt" // Go언어로 만든 모든 프로그램은 main()함수로 시작되고, 해당 함수가 종료되면 프로그램이 종료된다. func main() { // fmt package 에서 제공하는 문자열을 출력하는 .. 더보기